Следует ли использовать htmlspecialchars () для информации о входе или непосредственно перед выводом? - PullRequest
4 голосов
/ 30 августа 2011

Я беру информацию $ _POST и сохраняю ее в БД, а затем по запросу и распечатываю эту информацию для пользователя. Должен ли я использовать htmlspecialchars () перед вставкой этой информации или после запроса до ее вывода?

Кроме того, мне нужно, чтобы пользователи могли использовать кавычки и другие повседневные специальные символы. Я знаю, что могу использовать флаг ENT_NOQUOTES, но мне кажется, что если я это сделаю, это оставляет дыры в безопасности.

Мой сайт позволяет использовать Bbcode, и я хочу, чтобы пользователи могли использовать повседневные символы без необходимости видеть "amp; lt; & lt;? & Gt; &".

Терпение со мной <--- noob приветствуется! Спасибо: D </p>

Ответы [ 2 ]

7 голосов
/ 30 августа 2011

Должен ли я использовать htmlspecialchars () перед вставкой этой информации или после запроса перед ее выводом?

Удалить данные для целевого кода непосредственно перед его вставкой.т. е. непосредственно перед выводом.

Это означает, что вы будете хранить данные в их первоначальном виде для других целей (например, для вывода пользователю на редактирование, в том числе в электронном письме, создании PDF, поиска и т. д.)

Кроме того, мне нужна возможность, чтобы пользователи могли использовать кавычки и другие повседневные специальные символы.Я знаю, что могу использовать флаг ENT_NOQUOTES, но мне кажется, что если я это сделаю, это оставляет дыры в безопасности.

htmlspecialchars() преобразует кавычки во введенных данных в HTML.Так что вам не нужно делать ничего особенного.

Мой сайт разрешает Bbcode

Тогда вам нужно иметь правильный синтаксический анализатор BBCode.

2 голосов
/ 30 августа 2011

htmlspecialchars() используется перед выводом, чтобы избежать XSS. И база данных должна лучше сохранять необработанный ввод пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...