Уязвимости, позволяющие пользователю определять innerHTML - PullRequest
8 голосов
/ 29 апреля 2011

Допустим, у меня есть элемент

Каковы уязвимости, позволяющие пользователю определять содержимое элемента

?

Ответы [ 4 ]

2 голосов
/ 29 апреля 2011

Если содержимое, которое они вводят, не покидает страницу, нет больше риска, чем редактирование DOM через Firebug или Chrome Inspector. Если вы берете их данные, а затем отображаете их как есть, это представляет серьезную угрозу безопасности, особенно когда на вашем сайте находятся другие пользователи.

1 голос
/ 29 апреля 2011

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

Если вы этого не сделаете, пользователь может загрузить javascript, который будет выполняться при следующем просмотре этой страницы другим пользователем.

Я хочу изменить свой ответ, чтобы учесть комментарии @Brigham.Escape работает только надежно, если вы имеете дело с innerHTML чего-то вроде вкладки div, если вы имеете дело с использованием сгенерированного пользователем значения в качестве атрибута или внутри тега сценария, тогда экранирование / кодирование не будет работать.

Я отошлю вас к руководству OWASP XSS (на которое @Brigham первоначально обратил мое внимание) для получения дополнительной информации: https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet#Untrusted_Data

0 голосов
/ 29 апреля 2011

Все, что они хотят, может включать тег <script>, который извлекает файл .js со своего собственного сервера. Затем, если вы покажете этот контент другому пользователю, скрипт может сделать все возможное, чтобы извлечь информацию от ничего не подозревающего пользователя.

0 голосов
/ 29 апреля 2011

Пользователь может выполнять межсайтовый скриптинг.Он может внедрить вредоносный код на стороне клиента

Взгляните на http://en.wikipedia.org/wiki/Cross-site_scripting

...