Возможны ли атаки XSS на основе DOM в современных браузерах? - PullRequest
2 голосов
/ 04 марта 2012

В настоящее время я провожу некоторые исследования в области предотвращения XSS, но меня немного смущают атаки на основе DOM.В большинстве статей, которые я читал на эту тему, приведен пример внедрения JavaScript через параметры URL для изменения DOM, если значение отображается на странице с помощью JavaScript, а не кода на стороне сервера.

Однако, похоже, что всесовременные браузеры кодируют все специальные символы, заданные через параметры URL, если они отображаются с помощью JavaScript.

Означает ли это, что атаки XSS на основе DOM не могут быть выполнены, если они не направлены против более старых браузеров, таких как IE6?

Ответы [ 2 ]

2 голосов
/ 07 июля 2015

Забудьте о тех старшкольных примерах XSS, которые были 10 лет назад.Программисты, которые пишут javascript для рендеринга страницы, беря что-то неэкранированное из параметров запроса, были либо запущены, либо переключены на фреймворки, такие как angular / backbone.

Однако отраженный / сохраненный XSS по-прежнему широко существует.Это требует надлежащего побега как со стороны сервера, так и со стороны клиента.Современные фреймворки обеспечивают хорошую поддержку экранирования чувствительных символов при рендеринге HTML.Например, при рендеринге представлений из данных модели angular имеет службу $ sce (строго контекстный выход) (https://docs.angularjs.org/api/ng/service/$sce) для устранения возможных угроз XSS. В базовых моделях также есть методы, такие как "model.escape (attribute)" (http://backbonejs.org/#Model-escape) для устранения угроз XSS.

2 голосов
/ 04 марта 2012

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

Это не вопрос современных браузеров, это основной принцип, согласно которому браузер обрабатывает каждый контент, полученный от вашего сайта.домен как законный для выполнения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...