首页 文章

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

提问于
浏览
168

所以我现在一直在用telnet来玩telnet(即只需输入“telnet google.com 80”并输入随机GET和带有不同 Headers 的POST等)但是我遇到了谷歌的东西 . com传输我不知道的 Headers .

我一直在浏览http://www.w3.org/Protocols/rfc2616/rfc2616.html,并且没有找到谷歌似乎正在喷出的特定http-header的定义:

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

4 回答

  • 37

    X-XSS-Protection是Internet Explorer 8(以及更新版本)可以理解的HTTP标头 . 此标头允许域打开和关闭IE8的“XSS过滤器”,这可以防止某些类别的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

  • 8
    • X-XSS-Protection: 1 :强制XSS保护(如果用户禁用了XSS保护,则非常有用)

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

    • 如果检测到潜在的XSS反射(=非持久性)攻击,则令牌 mode=block 将阻止浏览器(IE8和Webkit浏览器)呈现页面(而不是清理) .

    /!\ Warning, mode=block 在IE8中创建了一个漏洞(more info) .

    更多信息:http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspxhttp://blog.veracode.com/2014/03/guidelines-for-setting-security-headers/

  • 97

    此响应标头可用于配置用户代理's built in reflective XSS protection. Currently, only Microsoft'的Internet Explorer,Google Chrome和Safari(WebKit)支持此标头 .

    Internet Explorer 8包含一项新功能,可帮助防止反映的跨站点脚本攻击,称为 XSS Filter . 此筛选器默认在Internet,受信任和受限制的安全区域中运行 . 本地Intranet区域页面可以使用相同的标头选择加入保护 .

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

    标头 X-XSS-Protection: 1; mode=block 启用XSS过滤器 . 检测到XSS攻击时,浏览器将阻止呈现页面,而不是清理页面 .

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

    X-XSS-Protection: 1; mode=block
    

    如果存在此令牌,如果检测到潜在的XSS Reflection攻击,Internet Explorer将阻止呈现页面 . IE不会尝试清理页面以手术删除XSS攻击,而只会呈现“#” . Internet Explorer识别可能的跨站点脚本攻击 . 它记录事件并向用户显示适当的消息 . MSDN文章描述了此标头的工作原理 .

    How this filter works in IE

    更多关于这篇文章,https://blogs.msdn.microsoft.com/ie/2008/07/02/ie8-security-part-iv-the-xss-filter/

    XSS Filter作为IE8组件运行,可以看到流经浏览器的所有请求/响应 . 当过滤器在跨站点请求中发现可能的XSS时,如果在服务器的响应中重放该过滤器,则它会识别并发生攻击 . 用户不会收到他们无法回答的问题 - IE只是阻止恶意脚本执行 . 使用新的XSS Filter,遇到Type-1 XSS攻击的IE8 Beta 2用户将看到如下通知:IE8 XSS攻击通知页面已被修改,XSS攻击被阻止 . 在这种情况下,XSS筛选器已在URL中识别出跨站点脚本攻击 . 当已识别的脚本重放回响应页面时,它已将此攻击归为绝 . 通过这种方式,过滤器无需修改对服务器的初始请求或阻止整个响应即可生效 . 当Windows Internet Explorer 8检测并缓解跨站点脚本(XSS)攻击时,将记录跨站点脚本过滤器事件 . 当一个网站(通常是恶意网站)将JavaScript代码注入(添加)到另一个网站的合法请求时,就会发生跨站点脚本攻击 . 原始请求通常是无辜的,例如到另一页面的链接或提供公共服务(例如留言簿)的公共网关接口(CGI)脚本 . 注入的脚本通常尝试访问第二个网站不打算允许的特权信息或服务 . 响应或请求通常会将结果反映回恶意网站 . XSS Filter是Internet Explorer 8的新增功能,可检测URL和HTTP POST请求中的JavaScript . 如果检测到JavaScript,则XSS过滤器会搜索反射的证据,如果攻击请求未经更改提交,则会返回到攻击网站的信息 . 如果检测到反射,则XSS过滤器会对原始请求进行清理无法执行其他JavaScript . 然后,XSS筛选器将该操作记录为跨站点脚本筛选器事件 . 下图显示了为防止跨站点脚本攻击而修改的站点示例 .

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

    Web开发人员可能希望禁用其内容的过滤器 . 他们可以通过设置HTTP标头来实现:

    X-XSS-Protection: 0
    

    有关安全标头的更多信息,

  • 53

    你可以在这个List of useful HTTP headers中看到 .

    X-XSS-Protection:此标头支持内置于最新Web浏览器中的跨站点脚本(XSS)过滤器 . 它通常默认启用,因此此标头的作用是重新启用此特定网站的过滤器(如果用户已禁用) . IE 8和Chrome中支持此标头(不确定是哪个版本) . Chrome 4中添加了反XSS过滤器 . 如果该版本符合此 Headers ,则无法识别 .

相关问题