Я использую функцию htmlspecialchars()
для предотвращения атак XSS. У меня есть сомнения относительно того, что является лучшим способом хранения данных в базе данных из следующего.лучше избегать/кодировать пользовательский ввод, прежде чем хранить его в базе данных или хранить его так, как он есть в базе данных, и избежать его при извлечении?
Способ 1: Сохраните введенные пользователем значения после применения функции htmlspecialchars()
. Используя это, пользовательский ввод "<script>"
станет «& lt; script & gt; ,
Способ 2: Храните входной сигнал пользователя как есть и применяйте метод htmlspecialchars()
при извлечении данных и их отображении на странице.
Причина, по которой я сомневаюсь, заключается в том, что, используя метод 1, в базе данных будут накладные расходы, а при использовании данных метода 2 необходимо снова и снова преобразовывать по запросу через php. Поэтому я не уверен, какой из них лучше.
Для получения дополнительной информации, я использую htmlspecialchars($val, ENT_QUOTES, "UTF-8")
так, что будет конвертировать "и", а также.
Пожалуйста, помогите мне очистить мои сомнения. Кроме того, предоставить объяснение, если это возможно.
спасибо.
'htmlspecialchars()' не остановит атаки SQL-инъекций. И, кроме того, все должны использовать параметризованные запросы в любом случае. –