X-Frame-Options,X-XSS-Protection,X-Content-Type-Options

X-Frame-Options

X-Frame-Options HTTP 响应头是用来给浏览器指示容许一个页面能否在 <frame><iframe>或者 <object> 中展示的标记。网站可使用此功能,来确保本身网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。javascript

使用 X-Frame-Options

X-Frame-Options 有三个值:css

DENY
表示该页面不容许在 frame 中展现,即使是在相同域名的页面中嵌套也不容许。
SAMEORIGIN
表示该页面能够在相同域名页面的 frame 中展现。
ALLOW-FROM uri
表示该页面能够在指定来源的 frame 中展现。

换一句话说,若是设置为 DENY,不光在别人的网站 frame 嵌入时会没法加载,在同域名页面中一样会没法加载。另外一方面,若是设置为 SAMEORIGIN,那么页面就能够在同域名页面的 frame 中嵌套。html

配置 IIS

配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中:java

<system.webServer>
  ...

  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>

  ...
</system.webServer>

结果

在 Firefox 尝试加载 frame 的内容时,若是 X-Frame-Options 响应头设置为禁止访问了,那么 Firefox 会用 about:blank 展示到 frame 中。也许从某种方面来说的话,展现为错误消息会更好一点。web

 

X-XSS-Protection

 HTTP X-XSS-Protection 响应头是Internet Explorer,Chrome和Safari的一个功能,当检测到跨站脚本攻击 (XSS)时,浏览器将中止加载页面。虽然这些保护在现代浏览器中基本上是没必要要的,当网站实施一个强大的Content-Security-Policy来禁用内联的JavaScript ('unsafe-inline')时, 他们仍然能够为尚不支持 CSP 的旧版浏览器的用户提供保护。浏览器

语法

X-XSS-Protection: 0
X-XSS-Protection: 1
X-XSS-Protection: 1; mode=block
X-XSS-Protection: 1; report=<reporting-uri>
0
禁止XSS过滤。
1
启用XSS过滤(一般浏览器是默认的)。 若是检测到跨站脚本攻击,浏览器将清除页面(删除不安全的部分)。
1;mode=block
启用XSS过滤。 若是检测到攻击,浏览器将不会清除页面,而是阻止页面加载。
1; report=<reporting-URI>  (Chromium only)
  启用XSS过滤。 若是检测到跨站脚本攻击,浏览器将清除页面并使用CSP  report-uri指令的功能发送违规报告。

X-Content-Type-Options

 X-Content-Type-Options 响应首部至关于一个提示标志,被服务器用来提示客户端必定要遵循在 Content-Type 首部中对  MIME 类型 的设定,而不能对其进行修改。这就禁用了客户端的 MIME 类型嗅探行为,换句话说,也就是意味着网站管理员肯定本身的设置没有问题。安全

语法

X-Content-Type-Options: nosniff

指令

nosniff
下面两种状况的请求将被阻止:
  • 请求类型是"style" 可是 MIME 类型不是 "text/css",
  • 请求类型是"script" 可是 MIME 类型不是  JavaScript MIME 类型
相关文章
相关标签/搜索