Какие браузеры позволяют javascript быть источником тегов изображения? - PullRequest
3 голосов
/ 22 июля 2010

Я слышал, что некоторые XSS-атаки можно осуществить, разместив изображение на сайте с javascript в качестве атрибута src Существуют ли определенные браузеры, которые защитят меня от атак такого типа?

Ответы [ 4 ]

3 голосов
/ 22 июля 2010

С http://ha.ckers.org/xss.html:

Изображение XSS с использованием директивы JavaScript (IE7.0 не поддерживает директиву JavaScript в контексте изображения, но она поддерживает в других контекстах, но ниже показаны принципы, которыебудет работать и в других тегах - возможно, я исправлю это позже):

<IMG SRC="javascript:alert('XSS');">

Поддержка браузера: [IE7.0 | IE6.0 | NS8.1-IE ] [NS8.1-G | FF2.0] [ O9,02 ]

1 голос
/ 22 июля 2010

Mozilla Firefox с дополнением NoScript.В основном вынуждает вас запускать javascripts вручную из неизвестных источников.

1 голос
/ 22 июля 2010

Не уверен, в каких браузерах это обнаружено, но вот как это предотвратить:

  • Требование аутентификации в параметрах GET и POST, а не только в файлах cookie;
  • Проверка заголовка HTTP Referer;
  • Обеспечение отсутствия файла crossdomain.xml, предоставляющего непреднамеренный доступ к Flash-фильмам
  • Ограничение времени жизни файлов cookie для аутентификации
  • При обработке POST игнорируйте параметры URL, если вы знаете, что они должны быть получены из формы
  • Требование секретного, специфичного для пользователя токена во всех отправленных формах и URL-адресах с побочными эффектами предотвращает CSRF; сайт злоумышленника не может вставить правильный токен в свои сообщения.

Источник: http://en.wikipedia.org/wiki/Cross-site_request_forgery#Prevention

0 голосов
/ 22 июля 2010

Я точно знаю, что ни один браузер не позволяет выполнять JavaScript в атрибуте src= тега изображения. Если какой-либо браузер сделал это, то это его уязвимость в браузере, для него должен быть выдан номер CVE, и он будет исправлен. Редактировать: I have tested this against the most recent IE8, chrome and firefox, and they have all patched this issue. Если вы по-прежнему уязвимы для этого, у вас есть НАМНОГО больших проблем в ваших руках, потому что злоумышленник наиболее вызывающе сможет выложить снаряд на ваш ящик.

Однако, <img src=img.jpg onload="alert(/xss/)"/> может использоваться для выполнения JavaScript. Таким образом, если злоумышленник может контролировать часть источника, он может ввести строку, подобную этой: src="fake.jpg" onload="alert(/xss/)". Именно поэтому htmlspeicalchars($image_location,ENT_QUOTES); следует использовать вместо htmlspecialchars($image_location). Другой подход заключается в использовании Html Purifier , который может автоматически удалять подобный javascript.

Если вы хотите защитить свой собственный браузер от XSS, вам следует использовать noscript.

Допускается использование тегов изображений для использования XSRF на основе GET. Это особенно плохо, если программное обеспечение выполняет только проверку реферера. Тем не менее, большинство приложений используют основанную на токене защиту от xsrf, которая защищает запросы от этой атаки. Тем не менее, ваш сайт может быть использован для атаки на сайты других людей с помощью поддельных запросов GET, но это не очень серьезная угроза. Одним из способов защиты было бы убедиться, что в этом месте действительно есть изображение, и отклонить тег img, если изображение не существует.

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