когда использовать функцию htmlspecialchars ()?

Привет Мне было интересно, Когда подходящее место для использования htmlspecialchars (). Это перед вставкой данных в базу данных или при их извлечении из базы данных?

4 ответов


вы должны вызывать этот метод только при повторении данных в HTML.

Не храните экранированный HTML в своей базе данных; это просто сделает запросы более раздражающими.
База данных должна хранить ваши фактические данные, а не их HTML-представление.


вы используете htmlspecialchars каждый время вывода контента в HTML, так это interperted как содержание, а не HTML.

Если вы разрешаете контент обрабатываться как HTML, вы только что открыли дверь к ошибкам как минимум, и в худшем случае всего XSS-хаки.


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


Руководство-Как использовать функцию htmlspecialchars () в PHP

для начала вам нужно понять 1 простую концепцию: рендеринг.

что сделать? Рендеринг-это когда HTML-преобразования

<b>Hello</b>

смелый, как это Привет. Это рендер.

так...Когда использовать функцию htmlspecialchars ()?

везде, где вы хотите отобразить содержимое HTML. Например, если вы используете JQuery и вы делаете это:

$("#YourDiv").html("<b>Hello</b>");

содержание div будет Привет. Он отобразил текст в HTML.

если вы хотите отобразить сообщение таким образом (был написан пользователем):

<b>Hello</b>

вы должны поставить:

$("#YourDiv").text("<b>Hello</b>");

таким образом, Hello никогда не будет отображаться.

если вы хотите загрузить сообщение (как написано Пользователем) в текстовое поле, textarea и т. д... Вы должны поставить:

<input type="text" class="Texbox1" value="">

<script>
$(".Textbox1").val("<b>Hello</b>");
</script>

что будет дисплей

 <b>Hello</b>

внутри текстового поля без проблем.

вывод:

какие данные пользователь вводит в ваши формы и т. д...Сохраните данные как обычно. Не используйте никаких функций. Если пользователь отправил 12345 сохранить как. Ничего не фильтровать. Вам нужно только фильтровать, когда вы собираетесь отображать данные на странице для пользователей. Вы, только вы решаете, хотите ли вы визуализировать или нет то, что написал пользователь. *Помнить что.

С уважением!