20 мая 2018 г.
Специфика межсайтовой сценарной атаки заключается в том что с помощью внедренного участка кода можно получить доступ к сессии пользователя либо авторизованных данных пользователя и последующее управление уже в роли данного пользователя.
Межсайтовая сценарная атака заключается во внедрении в выдаваемую веб-страницу вредоносного кода которая будет скрытно выполнена на компьютере пользователя на этой страницы. Специфика межсайтовой сценарной атаки заключается в том что с помощью внедренного участка кода можно получить доступ к сессии пользователя либо авторизованных данных пользователя и последующее управление уже в роли данного пользователя.
Пример сценарной атаки
Допустим нам необходимо дать возможность комментирования к примеру блога или статьи, не беспокоясь о том что содержащийся в комментарии код JS или Html создаст проблемы.
Решение
Немного аналитики. Мы не можем ограничить ввод данных пользователю потому что с помощью этой формы он должен свободно выражать свои мысли по поводу статьи нашего блога. Но мы можем убрать возможность вставки участков с HTML + JS ведь по сути никому кроме злоумышленников не понадобиться вставлять в комментарий участки кода.
Мы могли бы создать проверку на наличии данных участков и просто не допускать их на публикацию. Но задумайтесь сколько условий пришлось бы нам использовать. Уйму..
Но на помощь нам приходить стандартный метод PHP . С помощью функции htmlentities() мы сможем просто экранизировать участки вредоносной вставки. Более подробно о данной функции можно найти в документации PHP (я думаю ссылку давать нет необходимости)
Итог
В стандартных методах PHP существует пару функции с помощью которых можно экранизировать HTML. Простейшая это htmlspecialchars() – экранизирует четыре символа (< > “ и &) . Но именно функция htmlentities ( ) преобразует любые символы которые имеют эквивалент сущности HTML.
Имеется один нюанс при преобразовании данная функция орудует набором символов UTF-8 , по этому мы получим вместо вставки вредоносного кода участок из обычных символов.
Таким образом мы сможем ограничить внедрение вредоносных участков кода в комментарии нашего блога. Но не стоить забывать о том что это лишь одна из возможных атак разновидности «внедрение кода». Существует еще DDOS-атаки, мы постарались объяснить в прошлой статье как проверить на уязвимость серверную сайта от подобных атак.