[转]X-Frame-Options防止网页放在iframe中
X-Frame-Options防止网页放在iframe中
X-Frame-Options是什么?
X-Frame-Options是一个HTTP标头(header),用来告诉浏览器这个网页是否可以放在iFrame内。例如:
- X-Frame-Options: DENY
- X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM http://caibaojian.com/
第一个例子告诉浏览器不要(DENY)把这个网页放在iFrame内,通常的目的就是要帮助用户对抗点击劫持。
第二个例子告诉浏览器只有当架设iFrame的网站与发出X-Frame-Options的网站相同,才能显示发出X-Frame-Options网页的内容。
第三个例子告诉浏览器这个网页只能放在http://caibaojian.com//网页架设的iFrame内。
不指定X-Frame-Options的网页等同表示它可以放在任何iFrame内。
X-Frame-Options可以保障你的网页不会被放在恶意网站设定的iFrame内,令用户成为点击劫持的受害人。
使用X-Frame-Options 有两种可能的值:
- DENY :该页无法显示在一个框架中.
- SAMEORIGHT :页面只能显示在页面本网站的框架中.
有时候为了防止网页被别人的网站iframe,我们可以通过在服务端设置HTTP头部中的X-Frame-Options信息。
- X-Frame-Options 响应头有三个可选的值:
- DENY:页面不能被嵌入到任何iframe或frame中;
- SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中;
- ALLOW-FROM:页面允许frame或frame加载。
在服务端设置的方式如下:
Java代码: response.addHeader("x-frame-options","SAMEORIGIN"); Nginx配置: add_header X-Frame-Options SAMEORIGIN Apache配置: Header always append X-Frame-Options SAMEORIGIN
另外查了最新的资料,还可以直接通过meta标签来设置,不需要放在http头部请求中了。
<
meta
http-equiv
=
"X-Frame-Options"
content
=
"deny"
>
两个参数:(作用与上面一致)
- SAMEORIGIN
- DENY
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer>