前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >怎么防止WordPress等网站被别人使用iframe框架恶意调用?

怎么防止WordPress等网站被别人使用iframe框架恶意调用?

作者头像
沈唁
发布2018-08-21 15:08:13
1.1K0
发布2018-08-21 15:08:13
举报
文章被收录于专栏:沈唁志

最近发现了一个网站竟然直接使用iframe引用了全站,包括腾讯云的全站,已经通知了腾讯云的运营,运营的答复是会通过司法途径尝试去解决。个人是不可能这么干了,太麻烦,但是我也联系了该网站所在的网安进行监督处理,不知道是什么结果,有结果了再说吧

既然说到了怎么防止 iframe 框架恶意调用,那我们就应该知道什么是 iframe 框架,就是我们常用的 iframe 标签:<iframe>

iframe 元素会创建包含另外一个文档的内联框架(即行内框架),我们可以在我们自己的网站页面加载别人网站或者本站其他页面的内容经常会用到,比如后台常见的厂字型UI框架,并且所有浏览器都支持 <iframe> 标签

其他的不多说了,如果需要了解的话可以看看W3C或者菜鸟教程,下面开始正题,怎么防止 iframe 框架恶意调用?

js版本

代码语言:javascript
复制
<script type="text/javascript">
        if (self!=top){
            window.top.location.replace(self.location);
        }
</script>

WordPress网站可以加在footer.php中,其他网站也可以加在底部

WordPress版本

代码语言:javascript
复制
function break_out_of_frames() {
    if (!is_preview()) {
        echo "\n<script type=\"text/javascript\">";
        echo "\n<!--";
        echo "\nif (parent.frames.length > 0) { parent.location.href = location.href; }";
        echo "\n-->";
        echo "\n</script>\n\n";
    }
}
add_action('wp_head', 'break_out_of_frames');

上面两种其实都是JS版本的,这样使用是没有问题的,但是当你使用WordPress后台自定义编辑的时候,就会跳转,很烦人,你也可以做一下优化,判断是不是你的域名,如果是就不使用

下面说一下通过修改 X-Frame-Options 响应头的方式

X-Frame-Options 有三个值:

DENY

表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许

SAMEORIGIN

表示该页面可以在相同域名页面的 frame 中展示

Allow-From uri

表示该页面可以在指定来源的 frame 中展示

换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套

PHP版本

代码语言:javascript
复制
<?php header('X-Frame-Options:Deny'); ?>

WordPress网站放到主题模板header.php文件中的标签前

Apache服务器

配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 ‘site’ 的配置中:

代码语言:javascript
复制
Header always append X-Frame-Options SAMEORIGIN

在 Apache 主机的 httpd.conf 文件中加上这句后重启生效

.htaccess 方法
代码语言:javascript
复制
Header append X-FRAME-OPTIONS "SAMEORIGIN"

在网站根目录下的 .htaccess 文件中加上这句就可以了

Nginx服务器

配置 Nginx 发送 X-Frame-Options 响应头,把下面这行添加到 ‘http’,’server’ 或者 ‘location’ 的配置中:

代码语言:javascript
复制
add_header X-Frame-Options SAMEORIGIN;

重启生效

IIS服务器

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

代码语言:javascript
复制
<system.webServer>
  ...

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

  ...
</system.webServer>

这样就o98k了,可能有些浏览器兼容性问题,问题不大

沈唁志|一个PHPer的成长之路! 原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:怎么防止WordPress等网站被别人使用iframe框架恶意调用?

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • js版本
  • WordPress版本
    • DENY
      • SAMEORIGIN
        • Allow-From uri
        • PHP版本
        • Apache服务器
          • .htaccess 方法
          • Nginx服务器
          • IIS服务器
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档