什么是http-header“X-XSS-Protection”?

所以我一直在用HTTP来玩弄telnet(也就是说只要input“telnet google.com 80”,随意地将GET和POST放入不同的头文件等等),但我碰到过Google的东西。 com传送的是我不知道的标题。

我一直在寻找通过http://www.w3.org/Protocols/rfc2616/rfc2616.html,并没有发现这个特定的http头,谷歌似乎是吐出来的定义:

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”是什么?

X-XSS-Protection是Internet Explorer 8(及更新版本)所理解的HTTP标头。 这个头让域切换和打开IE8的“XSSfilter”,从而防止某些类别的XSS攻击。 IE8默认启用了filter,但是如果通过设置closures,服务器可以切换

  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

  • X-XSS-Protection: 1 :强制XSS保护(用户禁用XSS保护时有用)

  • X-XSS-Protection: 0 :禁用XSS保护

  • 如果检测到潜在的XSSreflection(=非永久性)攻击,令牌mode=block将阻止浏览器(IE8 +和Webkit浏览器)呈现页面(而不是消毒)。

/!\警告, mode=block在IE8中创build一个漏洞( 更多信息 )。

更多信息: http : //blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx和http://blog.veracode.com / 2014/03 /准则换设定安全-页眉/

此响应标头可用于configuration用户代理的内置reflection式XSS保护。 目前,只有微软的Internet Explorer,Google Chrome和Safari(WebKit)支持这个标题。

Internet Explorer 8包含一项新function,可帮助防止反映的跨站点脚本攻击(称为XSS筛选器) 此筛选默认在Internet,受信任和受限安全区域中运行。 本地Intranet区域页面可以使用相同的头部selectjoin保护。

关于您在问题中发布的标题,

标题X-XSS-Protection: 1; mode=block X-XSS-Protection: 1; mode=block启用XSSfilter。 浏览器不会对页面进行清理,而是在检测到XSS攻击时阻止呈现页面。

在2010年3月,我们在X-XSS-Protection头文件mode = block中添加了IE8对新令牌的支持。

 X-XSS-Protection: 1; mode=block 

当此令牌存在时,如果检测到潜在的XSSreflection攻击,则Internet Explorer将阻止呈现页面。 IE不会尝试清理页面来手动删除XSS攻击,而只会渲染“#”。

Internet Explorer可识别可能的跨站点脚本攻击。 它logging事件并向用户显示适当的消息。 MSDN文章描述了这个标题是如何工作的。

如何在IE中使用这个filter

有关本文的更多信息, 请访问https://blogs.msdn.microsoft.com/ie/2008/07/02/ie8-security-part-iv-the-xss-filter/

XSSfilter作为IE8组件运行,可以浏览浏览器中的所有请求/响应。 当filter在跨站点请求中发现可能的XSS时,如果它在服务器的响应中重播,则它识别并引发攻击。 用户不会被提出他们无法回答的问题 – IE只是阻止恶意脚本执行。

使用新的XSS筛选器,遇到types1 XSS攻击的IE8 Beta 2用户将看到类似以下的通知:

IE8 XSS攻击通知

页面已被修改,XSS攻击被阻止。

在这种情况下,XSSfilter在URL中识别出跨站脚本攻击。 当确定的脚本重新回到响应页面时,它已经中止了这种攻击。 通过这种方式,filter是有效的,无需修改对服务器的初始请求或阻止整个响应。

当Windows Internet Explorer 8检测到并缓解跨站点脚本(XSS)攻击时,会logging跨站点脚本筛选器事件。 当一个网站(通常是恶意的)将JavaScript代码注入(添加)到另一个网站的合法请求中时,就会发生跨站点脚本攻击。 原始请求通常是无辜的,例如提供公共服务(例如留言)的另一个页面或通用网关接口(CGI)脚本的链接。 注入的脚本通常尝试访问第二个网站不打算允许的特权信息或服务。 响应或请求通常将结果反映到恶意网站。 XSS筛选器是Internet Explorer 8的新增function,可检测URL和HTTP POST请求中的JavaScript。 如果检测到JavaScript,则XSSfilter会searchreflection的证据,如果攻击请求未被更改,则会返回到攻击网站的信息。 如果检测到reflection,则XSSfilter会清理原始请求,以便不能执行其他JavaScript。 然后,XSS筛选器将该操作logging为跨站点脚本筛选器事件。 下图显示了为防止跨站点脚本攻击而修改的站点示例。

来源: https : //msdn.microsoft.com/en-us/library/dd565647(v=vs.85).aspx

Web开发人员可能希望禁用其内容的filter。 他们可以通过设置一个HTTP头来这样做:

 X-XSS-Protection: 0 

更多关于安全头文件,

https://www.veracode.com/blog/2014/03/guidelines-for-setting-security-headers http://zinoui.c​​om/blog/security-http-headers#x-xss-protection

你可以在“ https://www.owasp.org/index.php/List_of_useful_HTTP_headers ”中看到。 X-XSS-Protection:“这个头文件使得跨网站脚本(XSS)filter可以embedded到最新的浏览器中,通常默认是启用的,所以这个头文件的作用是重新启用这个网站的filter如果它被用户禁用的话,这个头文件在IE 8+和Chrome(不知道是哪个版本)中都支持,反XSSfilter是在Chrome 4中添加的,不知道是否该版本支持这个头文件。