Я немного смущен этим. Я читал о htmlspecialchars()
и планирую использовать это для текстовых полей POST
, чтобы предотвратить XSS-атаку. Я понимаю, что обычно htmlspecialchars()
используются для создания вывода HTML, который отправляется в браузер. Но вот в чем я не уверен:
1) Безопасно ли использовать htmlspecialchars()
для входных данных пользователя, прежде чем я вставлю их в MySQL? Я уже использую подготовленный оператор PDO с параметризованными значениями для предотвращения SQL-инъекций.
2) Или мне действительно не нужно беспокоиться об использовании htmlspecialchars()
для вставленных значений (при условии, что они параметризованы) и использовать только htmlspecialchars()
, когда я получаю результаты из MySQL и отображаю их пользователям?
<a href='test'>Test</a>
. Когда это экранируется во время вставки и снова экранируется во время вывода, будет ли он отображаться как<a href='test'>Test</a>
вместо отображения его как<a href='test'>Test</a>
в браузере? - person Neel   schedule 07.01.2014<a href='test'>Test</a>
предназначен для преобразования его в реальную рабочую ссылку, вам придется декодировать его перед выводом. Если вы хотите, чтобы он отображался буквально как разметка HTML, одна кодировка будет отображаться в браузере как<a href='test'>Test</a>
, а двойная кодировка будет отображаться как<a href='test'>Test</a>
, и ни одна из них не даст вам рабочей ссылки. - person Michael Berkowski   schedule 07.01.2014htmlspecialchars()
в конце и убедиться, что у меня есть привычка кодировать его каждый раз, когда я показываю любые полученные результаты конечному пользователю. Эта практика, возможно, сделает ее хорошей привычкой. Я был смущен этим, так как в большинстве статей, которые я читал о XSS, говорилось, что мне нужно проверять и дезинфицировать все пользовательские входы. Поэтому я не был уверен, что делать с текстовой областью, когда у меня нет ничего, что можно было бы проверить, например, ожидая набора чисел или значений и т. д. перед вставкой. Так что все ваши ответы дали мне более четкое понимание. :) - person Neel   schedule 07.01.2014