почему выходные данные html и выходные данные браузера отличаются, когда мы кодируем входные данные пользователя htmlentities, чтобы предотвратить межсайтовый скриптинг? - PullRequest
0 голосов
/ 02 июня 2019

Для предотвращения межсайтового скриптинга я использую htmlentities. Но у меня есть небольшие сомнения в выводе кода. Это

$str = "Albert Einstein said: 'E=MC²'";
$enc = htmlenities($str);

С этим кодом я кодирую входные данные пользователя. Так что переменная$ enc будет

Albert Einstein said: 'E=MC&sup2;'<br>

Но когда этот код отрендерен и выдает результат, вывод будет

Albert Einstein said: 'E=MC²'

Я сомневаюсь, что мы не декодировали $ enc, вывод должен отображатьсякак

Albert Einstein said: 'E=MC&sup2;'<br>

Почему это происходит?

1 Ответ

0 голосов
/ 02 июня 2019

Некоторые символы зарезервированы в HTML.

Предположим, что мы хотим написать что-то в HTML, чтобы показать изображение.

Затем мы напишем <img src="someimage.jpg" /> ибраузер загружает и отображает изображение на странице.

Теперь рассмотрим, что у нас есть обучающий веб-сайт, и мы хотим научить нашу аудиторию, как загружать изображение на веб-странице.так что нам теперь делать?

Чтобы отобразить эти зарезервированные символы, нам нужно использовать сущности HTML, и браузер будет обрабатывать их за нас.

Зарезервированные символы в HTML должны быть заменены насущности персонажей.

Символы, которых нет на клавиатуре, также можно заменить сущностями.

Вы можете прочитать об этом в w3schools - https://www.w3schools.com/html/html_entities.asp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...