Урок 17. PHP — htmlentities

Урок 17. PHP — htmlentities

Всякий раз, когда вы позволяете вашим пользователям отправлять текст на ваш сайт (имя, логин, пароль или любая другая информация), вы должны быть осторожны. Нужно быть уверенным, что у вас нет дыр в безопасности сайта, которые злоумышленники могут использовать для взлома. Если все же нужно получать от пользователя данные, то обязательно используйте функцию 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;’ Обломали нашего юного хакера 😀

Когда нужно использовать htmlentities?

Всегда, когда вы позволяете пользователям отправлять контент на ваш сайт. Да, лучше ограничить пользователей в возможности использования HTML тегов, зато не рисковать безопасностью своего сайта. Иногда все таки требуется предоставить им некоторые теги для форматирования своего текста, например, выделение жирным шрифтом и так далее, но это выходит за рамки данного урока, может быть поговорим об этом позже.

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

← POST и GET | Содержание | Файлы →