2012-02-01 3 views
150

Итак, теперь я собираюсь с помощью HTTP для развлечения в telnet (например, просто набрав «telnet google.com 80» и помещая случайные GET и POST с разными заголовками и т. П.), Но я столкнулся с чем-то, что google.com передает в своих заголовках, которые я не знаю.Что такое http-заголовок «X-XSS-Protection»?

Я просматривал http://www.w3.org/Protocols/rfc2616/rfc2616.html и не нашли никакого определения для этого конкретного HTTP-заголовка, Google, кажется, бьющий из:

GET/HTTP/1.1 

HTTP/1.1 200 OK 
Date: Wed, 01 Feb 2012 03:42:24 GMT 
Expires: -1 
Cache-Control: private, max-age=0 
Content-Type: text/html; charset=ISO-8859-1 
Set-Cookie: PREF=ID=6ddbc0a0342e7e63:FF=0:TM=1328067744:LM=1328067744:S=4d4farvCGl5Ww0C3; expires=Fri, 31-Jan-2014 03:42:24 GMT; path=/; domain=.google.com 
Set-Cookie: NID=56=PgRwCKa8EltKnHS5clbFuhwyWsd3cPXiV1-iXzgyKsiy5RKXEKbg89gWWpjzYZjLPWTKrCWhOUhdInOlYU56LOb2W7XpC7uBnKAjMbxQSBw1UIprzw2BFK5dnaY7PRji; expires=Thu, 02-Aug-2012 03:42:24 GMT; path=/; domain=.google.com; HttpOnly 
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." 
Server: gws 
X-XSS-Protection: 1; mode=block 
X-Frame-Options: SAMEORIGIN 
Transfer-Encoding: chunked 

1000 

Любой знает, что «X-XSS-Protection» есть?

+5

FWIW, «правильное» место, чтобы посмотреть спецификации поля заголовка * не * HTTP-спецификация (в настоящее время RFC 2616), но поля заголовка реестр IANA (что, как говорится, это не перечисленное там) –

+1

@JulianReschke, Почему это так? Должна ли спецификация HTTP быть авторитетной по HTTP? – Pacerier

+1

Спецификация HTTP передает реестр заголовков в IANA. –

ответ

92

X-XSS-Protection - это HTTP-заголовок, который понимает Internet Explorer 8 (и более новые версии). Этот заголовок позволяет доменам включать и выключать «Фильтр XSS» IE8, который предотвращает некоторые категории атак XSS. IE8 имеет фильтр активирован по умолчанию, но серверы могут переключаться, если выключить, установив

X-XSS-Protection: 0 

Смотрите также http://blogs.msdn.com/b/ieinternals/archive/2011/01/31/controlling-the-internet-explorer-xss-filter-with-the-x-xss-protection-http-header.aspx

+83

Это очень расплывчато. Точно * как * этот заголовок предотвращает XSS? Итак, теперь IE видит X-XSS-Protection: 1', а затем, какой алгоритм он использует для предотвращения XSS? – Pacerier

+9

Детали трудно найти, потому что это проприетарная технология. По сути, IE контролирует, если какой-либо из подозрительных параметров, которые браузер отправляет на веб-сайт, возвращается в ответ, декодированный. Например, если пользователь нажимает на http://attack-me.com/%3E%3Cscript%3Ealert('XSS')%3B%3C%2Fscript%3E (который есть "> , и получает в результате страницу, содержащую этот скрипт, IE предотвратит это. –

+9

Как мне кажется (доказательство трудно найти), что оно защищает только от Reflected XSS (http://www.infosecisland.com/ blogview/11402-Cross-Site-Scripting-XSS-Some-Examples.html), также потому, что у него нет никакого смысла обнаруживать сохраненный XSS (также называемый Persistent XSS). –

50
  • X-XSS-Protection: 1: Силы защиты XSS (полезно, если защита XSS была отключена пользователем)

  • X-XSS-Protection: 0: Отключить защиту XSS

  • Токен mode=block не позволит браузерам (браузеры IE8 + и Webkit) отображать страницы (вместо дезинфекции), если обнаружена потенциальная атака XSS (= непостоянная).

/! \ Внимание, mode=block создает уязвимость в IE8 (more info).

Дополнительная информация: http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx и http://blog.veracode.com/2014/03/guidelines-for-setting-security-headers/

+1

. Для записи была исправлена ​​ошибка IE8 (CVE-2009-4074) – yakatz

+0

https: //developer.mozilla.org/es/docs/Web/HTTP/Headers/X-XSS-Protection В этой ссылке мы найдем описание X-XSS-Protection –

31

Этот заголовок ответа может быть использован для настройки пользователем агента построен в отражательной защиты XSS. В настоящее время этот заголовок поддерживает только Microsoft Internet Explorer, Google Chrome и Safari (WebKit).

Internet Explorer 8 включены новые функции, чтобы помочь предотвратить отражение атак межсайтовых скриптов, известные как фильтр XSS. Этот фильтр работает по умолчанию в зонах безопасности Internet, Trusted и Restricted. Страницы зоны локальной интрасети могут выбирать защиту, используя тот же заголовок.

О заголовок, который вы публикуемую в вашем вопросе,

Заголовок X-XSS-Protection: 1; mode=block позволяет XSS фильтр. Вместо того, чтобы дезинфицировать страницу, когда обнаружена атака XSS, браузер предотвратит отображение страницы.

В марте 2010 года мы добавили поддержку IE8 для нового маркера в заголовка X-XSS-Protection, режим = блок.

X-XSS-Protection: 1; mode=block 

Когда этот маркер присутствует, если потенциальный XSS Отражение атаки обнаружен, Internet Explorer предотвратит рендеринг страницы. Вместо того, чтобы пытаться дезинфицировать страницу, чтобы хирургически удалить атаку XSS , IE будет отображать только «#».

Internet Explorer распознает возможную атаку межсайтового скриптинга. Он регистрирует событие и отображает соответствующее сообщение пользователю. В статье MSDN описано, как работает этот заголовок.

Как этот фильтр работает в IE,

Подробнее об этой статье, https://blogs.msdn.microsoft.com/ie/2008/07/02/ie8-security-part-iv-the-xss-filter/

XSS-фильтр работает как компонент IE8 с видимостью в все запросов/ответов, проходящих через браузер. Когда фильтр обнаруживает вероятный XSS в запросе кросс-сайта, он идентифицирует и атакует атаку, если она воспроизводится в ответе сервера. Пользователям не заданы вопросы, на которые они не могут ответить - IE просто блокирует выполнение вредоносного скрипта.

С новым XSS фильтр, IE8 Beta 2 пользователи встречая Type-1 XSS атака будет видеть уведомление вроде следующего: Уведомление

IE8 атаки XSS

страница была модифицирована и атака XSS блокируется.

В этом случае XSS Filter идентифицировал межсайтовый скриптинг в URL-адресе. Он нейтрализовал эту атаку, поскольку идентифицированный сценарий был повторно воспроизведен на странице ответа. Таким образом, фильтр эффективен без изменения первоначального запроса на сервер или блокирования всего ответа.

Событие фильтра межсайтовых сценариев регистрируется, когда Windows Internet Проводник 8 обнаруживает и уменьшает атаку межсайтового скриптинга (XSS). Атаки межсайтового скриптинга происходят, когда один веб-сайт, как правило, злонамерен, вводит (добавляет) код JavaScript в другой законный просит на другой сайт. Первоначальный запрос, как правило, невинно, например, ссылка на другую страницу или общий скрипт общего интерфейса шлюза (CGI), предоставляющий общую службу (например, гостевую книгу). Вложенный сценарий обычно пытается получить доступ к привилегированной информации или службам, которые второй веб-сайт не собирается разрешать. Ответ или запрос в целом отражают результаты обратно на вредоносный веб-сайт . Фильтр XSS, новая для Internet Explorer 8, обнаруживает JavaScript в URL-адресах и HTTP-запросах POST. Если обнаружен JavaScript , фильтр XSS ищет доказательства отражения, информацию , которая будет возвращена на атакующий веб-сайт, если бы атакующий запрос был оставлен без изменений.Если обнаружено отражение, фильтр XSS дезактивирует исходный запрос, так что нельзя выполнить дополнительный код . Фильтр XSS затем регистрирует это действие как событие Cross-Site Script Filter. На следующем рисунке показан пример сайта, который был изменен для предотвращения атаки межсайтового скриптинга.

Источник: https://msdn.microsoft.com/en-us/library/dd565647(v=vs.85).aspx

Веб-разработчики могут захотеть отключить фильтр для их содержания. Они могут сделать это, установив HTTP заголовок:

X-XSS-Protection: 0 

Подробнее о заголовках безопасности в,

6

Вы можете видеть в этом List of useful HTTP headers.

X-XSS-Protection: Этот заголовок позволяет Межсайтовый скриптинг (XSS) фильтр, встроенный в самых последних веб-браузеров. В любом случае это обычно включено по умолчанию, поэтому роль этого заголовка заключается в том, чтобы повторно включить фильтр для данного веб-сайта, если он был отключен пользователем. Этот заголовок поддерживается в IE 8+ и в Chrome (не знаю, какие версии). Фильтр анти-XSS был добавлен в Chrome 4. Его неизвестно, если эта версия удостоила этот заголовок.

Смежные вопросы