2016
02-04

禁止网页被别的网站嵌套展示

免费支持本站

禁止网页被别的网站嵌套展示

最近检查 Google Webmaster 的时候发现很多链接地址错误。它们来自一些提供搜索服务但并不是我们常见的搜索引擎的网站。其中甚至有些网站的搜索结果并不会跳转到对应网站,而是将相应的网页通过 方式嵌入到自己的网站来展示。可以通过 X-Frame-Options 来使这种方式失效,一是避免网页被人恶意使用,二是避免GW中的那些错误记录。

相关的问题在 Clickjacking 页面介绍得非常详细。并且这个网页上还提供了一些非常规的方法。

目录 Contents

1 X-Frame-Options 参数

2 实施方式

2.1 配置网页服务器

2.2 页面硬编入源代码

X-Frame-Options 参数?

X-Frame-Options 有三个参数:

DENY:页面不会展示在任何网站的 frame 里面。

SAMEORIGIN:页面只能展示在具有相同来源的 frame 里面。也就是说,嵌在 frame 里面的网址的域名与嵌有 frame 的网页的域名是一致的情况下可以展示该页面。

ALLOW-FROM uri:只有指定来源的网页可以展示我们的页面。

所以比较保险的用法是使用第二个参数 SAMEORIGIN。别的网站不能嵌套我们的网页,但是我们自己可以。

实施方式?

可以通过配置网页服务器(如 Apache)实现,也可以直接作为页面 header 的内容硬编入页面源代码。

配置网页服务器?

在网页服务器中配置按说是最省事的。相应的设置可以参考这里。其中,Apache 服务器的配置为,在网站的主机配置中加入下面的代码。也可以加入到网站的 .htaccess 文件中。

Header always append X-Frame-Options SAMEORIGIN

当然这个需要 Apache 启用了 mod_headers 模块。

另外,按照这里的讨论,可以直接写成,

X-XSS-Protection: 1; mode=blockX-Frame-Options: SAMEORIGINX-Content-Type-Options: nosniff

这里同时加入了另外两个选项以提高网站安全性。或者写成,

Header set X-XSS-Protection "1; mode=block"Header always append X-Frame-Options SAMEORIGINHeader set X-Content-Type-Options: "nosniff”

这两者是等效的。

如果是 Nginx,可以在 http、server 或者是 location 配置中加入,

add_header X-Frame-Options SAMEORIGIN;

重启网页服务器就生效了。

但是不知道为什么,我的 Apache 服务器上的 WordPress 网站页面的响应头文件里却没有。一个可能性极大的原因是使用的 WP Super Cache(WPSC) 插件缓存造成的。所以水景一页在 WordPress 里头使用了下一方法。

页面硬编入源代码?

直接修改网页的模板。对于 WordPress 来说就是主题的 header.php 文件。在之间增加下面的一行,

如果服务器上有个多个 WP 站点,或者是 WP 多站点使用了不同的主题,则需要对每个在用的主题进行此操作。

虽然这个看起来麻烦点,但是却可以在有 WPSC 的情况下生效。

采用这个方法后,这段时间由于别的网站 frame 嵌套带来的 403、404 错误记录已经减少了很多了。?


官方QQ群号码:922069959
点击链接加入群聊【路由器交流】:https://jq.qq.com/?_wv=1027&k=5AKdmZP

您可能感兴趣的文章

    路由器交流群

    支付宝打赏支付宝打赏微信打赏微信打赏

    本文》有 0 条评论

    留下一个回复 (您的评论需要经过审核才能显示)