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

一、js版本防止 iframe 框架恶意调用

1.通用 JS版本

WordPress 网站可以将以下 JS 代码添加在 footer.php 中,其他网站也可以加在相应的底部文件中。

<script type=“text/javascript”>

if (self!=top){

window.top.location.replace(self.location);

}

</script>

2.WordPress版本

将以下代码直接添加到当前主题的 functions.php 文件中即可

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防止 iframe 框架恶意调用

下面说一下通过修改 X-Frame-Options 响应头的方式,X-Frame-Options 有三个值:

  • DENY表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许;
  • SAMEORIGIN:表示该页面可以在相同域名页面的 frame 中展示;
  • Allow-From [uri]表示该页面可以在指定来源的 frame 中展示。

换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套,一般建议设置为 SAMEORIGIN 即可,如果发现有很多人恶意利用 iframe 框架调用,那么就设置为 DENY。具体设置 X-Frame-Options 的值的方法如下:

1.PHP版本

<?php header(‘X-Frame-Options:Deny’); ?>

WordPress 网站放到主题模板 header.php 文件中的标签前,其他建站程序参考设置即可。

2.Apache服务器

配置 Apache 在所有页面上发送 X-Frame-Options 响应头,有两种办法:

2.1 在 Apache 主机的 httpd.conf 文件中需要把下面这行添加到’site’的配置中并重启生效即可:

Header always append X-Frame-Options SAMEORIGIN

2.2 在网站根目录下的 .htaccess 文件中加上下面这句代码即可。

Header append X-FRAME-OPTIONS “SAMEORIGIN”

2.Nginx服务器

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

add_header X-Frame-Options SAMEORIGIN;

3.IIS服务器

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

<system.webServer>

<httpProtocol>

<customHeaders>

<add name=“X-Frame-Options” value=“SAMEORIGIN” />

</customHeaders>

</httpProtocol>

</system.webServer>

本文来自投稿,不代表博客主立场,如若转载,请注明出处:https://www.bokezhu.com/2018/08/07/279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
哇塞的头像哇塞认证作者
上一篇 2018/08/04 17:08
下一篇 2018/08/07 02:01

相关推荐

发表回复

登录后才能评论