4 ответов:
Если контент, который они вводят, не покидает страницу, нет большего риска, чем редактирование DOM через firebug или Chrome inspector. Если вы принимаете их ввод, а затем отображаете его как есть, это огромный риск для безопасности, особенно когда другие пользователи находятся на вашем веб-сайте.
Ну, если вы кодируете содержимое так, что любой javascript, который там находится, не будет выполняться, то это должно быть безопасно.
Если вы этого не сделаете, то пользователь может загрузить javascript, который будет выполняться при следующем просмотре этой страницы другим пользователем.
Я хочу изменить свой ответ, чтобы учесть комментарии @Brigham. Escape работает надежно только в том случае, если вы имеете дело с The innerHTML чего-то вроде вкладки div, если вы имеете дело с использованием созданного пользователем значения в качестве атрибута или в теге сценария тогда экранирование / кодирование не будет работать.
Я отсылаю вас к руководству OWASP XSS (которое @Brigham первоначально привлек мое внимание) для получения дополнительной информации: https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet#Untrusted_Data
Пользователь может выполнять межсайтовые сценарии. Он может вводить вредоносный код на стороне клиента
Взгляните на http://en.wikipedia.org/wiki/Cross-site_scripting
Все, что они хотят, может включать тег
<script>, который тянет a .файл js с их собственного сервера. Затем, если вы покажете этот контент другому пользователю, скрипт может сделать все возможное, чтобы извлечь информацию из ничего не подозревающего пользователя.
Comments