PHP htmlentities () на входе перед вставкой БД, а не на выходе
Интересно, есть ли недостатки или плохая практика в выполнении следующей процедуры:
$ user_input -> htmlentities ($ user_input) -> mysql_escape ($ user_input) -> вставить $ user_input в БДВыберите $ user_input из БД -> echo $ user_inputвместо того, чтобы делать следующее:
$ user_input -> mysql_escape ($ user_input) -> вставить $ user_input в БДВыберите $ user_input из БД -> echo htmlentities ($ user_input)Поскольку мы показываем один и тот же $ user_input во многих местах, вместо этого он чувствует себя более эффективно на входе, есть ли какие-либо недостатки / плохая практика / эксплойт-способность в этом?
Ура!
Хорошие ответы на вопрос от:
@Matt: В общем, чтобы вещи были читабельными и понятными, старайтесь хранить их как можно ближе к оригинальному, нефильтрованному контенту. Это зависит от двух вещей: собирается ли другой человек / программа ссылаться на эти данные? Должны ли данные быть легко редактируемыми?
@Sjoerd: есть недостаток, если вы хотите отображать данные как что-то другое, чем HTML, например скачать CSV, PDF и т. д.