Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Вы используете htmlspecialchars КАЖДЫЙ время вывода содержимого в HTML, поэтому оно взаимодействует как содержимое, а не HTML.

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

Ответ 3

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

Ответ 4

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

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

Что такое рендеринг? Render - это когда HTML преобразует

<b>Hello</b>

чтобы сделать это жирным шрифтом как Hello. Это сделать.

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

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

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

Содержимое div будет Hello. Он превратил текст в HTML.

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

<b>Hello</b>

вам нужно поставить:

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

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

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

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

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

Будет отображаться

 <b>Hello</b>

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

Вывод:

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

Привет!