Я беру $ _POST информацию и сохраняю ее в БД, а затем в запросе и распечатываю эту информацию пользователю. Должен ли я использовать htmlspecialchars (), прежде чем вставлять эту информацию или после того, как я ее запрошу, прежде чем вывести ее?
Кроме того, мне нужна возможность для пользователей иметь возможность использовать кавычки и другие обычные специальные символы. Я знаю, что могу использовать флаг ENT_NOQUOTES, но мне кажется, что если я это сделаю, он оставит дыры в безопасности.
Мой сайт позволяет Bbcode, и я хочу, чтобы пользователи могли использовать обычные символы без необходимости видеть «amp; lt; & lt; & gt; & gt; & quot;».
Терпение со мной <— noob рекомендуется! Спасибо
Должен ли я использовать htmlspecialchars (), прежде чем вставлять эту информацию или после того, как я ее запрошу, прежде чем вывести ее?
Удалите данные для целевого кода непосредственно перед его вставкой. т.е. непосредственно перед его выходом.
Это означает, что вы сохраните данные в оригинальной форме для других целей (например, для пользователя, для редактирования, в том числе по электронной почте, создания PDF-файла, поиска и т. Д.),
Кроме того, мне нужна возможность для пользователей иметь возможность использовать кавычки и другие обычные специальные символы. Я знаю, что могу использовать флаг ENT_NOQUOTES, но мне кажется, что если я это сделаю, он оставит дыры в безопасности.
htmlspecialchars()
преобразует кавычки во введенные данные в HTML. Поэтому вам не нужно ничего особенного делать.
Мой сайт позволяет Bbcode
Затем вам нужно иметь собственный синтаксический анализатор BBCode.
htmlspecialchars()
используется перед выходом, чтобы избежать XSS. И база данных должна лучше сохранять исходный вход пользователя.