Краткий ответ: все, что они могут сделать с тегом script
.
Тег script
не требуется для запуска JavaScript. Скрипт также может быть помещен в почти каждый тег HTML. Сценарий может появляться в ряде мест, дополнительных к тегу сценария, включая, помимо прочего, атрибуты src
и href
, используемые для URL-адресов, обработчики событий и атрибут style
.
Возможность для пользователя разместить нежелательный скрипт на вашей странице является уязвимостью, известной как межсайтовый скриптинг . Прочитайте эту тему и прочитайте Шпаргалку по профилактике XSS .
Возможно, вы не захотите, чтобы пользователи добавляли HTML на ваши страницы. Если вам нужна эта функция, рассмотрите другие форматы, такие как Markdown, которые позволяют отключить использование любого встроенного HTML; или другой менее безопасный вариант - использовать библиотеку фильтрации, которая пытается удалить все скрипты, например HTMLPurifier. Если вы выберете опцию фильтрации, обязательно подпишитесь на анонсы новых выпусков и всегда возвращайтесь к своему проекту, чтобы установить исправленные с ошибками выпуски фильтра, когда новые эксплойты найдены и исправлены.