禁止网页被别的网站嵌套展示 二维码
64
最近检查 Google Webmaster 的时候发现很多链接地址错误。它们来自一些提供搜索服务但并不是我们常见的搜索引擎的网站。其中甚至有些网站的搜索结果并不会跳转到对应网站,而是将相应的网页通过 <frame> 方式嵌入到自己的网站来展示。可以通过 X-Frame-Options 来使这种方式失效,一是避免网页被人恶意使用,二是避免GW中的那些错误记录。 相关的问题在 Clickjacking 页面介绍得非常详细。并且这个网页上还提供了一些非常规的方法。 目录 Contents
X-Frame-Options 参数¶X-Frame-Options 有三个参数:
所以比较保险的用法是使用第二个参数 实施方式¶可以通过配置网页服务器(如 Apache)实现,也可以直接作为页面 header 的内容硬编入页面源代码(该方式不符合 HTML 规范)。 配置网页服务器¶在网页服务器中配置按说是最省事的。相应的设置可以参考这里。其中,Apache 服务器的配置为,在网站的主机配置中加入下面的代码。也可以加入到网站的 <ifModule mod_headers.c> Header always append X-Frame-Options SAMEORIGIN </ifModule> 当然这个需要 Apache 启用了 mod_headers 模块。 另外,按照这里的讨论,可以直接写成, <ifModule mod_headers.c> X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff </ifModule> 这里同时加入了另外两个选项以提高网站安全性。或者写成, <ifModule mod_headers.c> Header set X-XSS-Protection "1; mode=block" Header always append X-Frame-Options SAMEORIGIN Header set X-Content-Type-Options: "nosniff” </ifModule> 这两者是等效的。 如果是 Nginx,可以在 http、server 或者是 location 配置中加入, add_header X-Frame-Options SAMEORIGIN; 重启网页服务器就生效了。 但是不知道为什么,我的 Apache 服务器上的 WordPress 网站页面的响应头文件里却没有。一个可能性极大的原因是使用的 WP Super Cache(WPSC) 插件缓存造成的。将 WP Super Cache 改成 php 模式之后就没有这个问题了。 采用这个方法后,这段时间由于别的网站 frame 嵌套带来的 403、404 错误记录已经减少了很多了
文章分类:
技术资料
|