一、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