Просмотр поста

.
Райский

Foolish, Всякий раз, когда вы
позволяете вашим
пользователям отправлять
текст на ваш сайт (имя,
логин, пароль или любая
другая информация), вы
должны быть осторожны.
Нужно быть уверенным,
что у вас нет дыр в
безопасности сайта,
которые злоумышленники
могут использовать для
взлома. Если все же нужно
получать от пользователя
данные, то обязательно
используйте функцию
htmlentities, чтобы
предотвратить запуск
HTML-кода или скриптов,
которые могут быть
вредны и опасны!
PHP — Преобразование
HTML тегов
Htmlentities функция
принимает строку и
возвращает ту же строчку,
но уже с
преобразованными HTML
тегами.
Например , строка
"<script>" будет
преобразована в
"&lt;script&gt;" .
Путем преобразования
символов < и > в сущности,
она не дает браузеру
выполнить текст как
скрипт.
Это может показаться
немного сложным, но если
вы подумаете, как работает
браузер, то становится
понятнее. Проще говоря,
данная функция обрезает
или преобразует
некоторые служебные
символы, чтобы они уже
не воспринимались
браузером или сервером
как исполняемый скрипт, а
виделись ему как обычный
текст. Давайте посмотрим,
как функция htmlentities
изменяет данные.
//Пользователь
отправляет нам данные и
надеется перенаправить
нам на свой сайт
$userInput = "Смотрите,
сейчас я перенаправлю
вас на example.com!
Хахаха!
<script type='text/
javascript'>
window.location =
'http://www.example.com/'
</script>'" ;
//Но мы это
предусмотрели и
использовали htmlentities
$userInputEntities =
htmlentities ($userInput );
//И теперь без опасений
используем присланные
данные
echo $userInputEntities ;
В результате, ничего
страшного не произойдет,
а все присланные
пользователем данные
преобразованы в
безопасные:
Смотрите , сейчас я
перенаправлю вас на
example . com! Хахаха!
& lt ;script
type ='text/javascript' & gt ;
window .location =
'http://www.example.com/'
& lt ;/ script& gt; '
Обломали нашего юного
хакера"