PHP、Nginx、Apache中禁止网页被iframe引用的方法

网络编程 2021-07-05 09:50www.168986.cn编程入门
这篇文章主要介绍了PHP、Nginx、Apache中禁止网页被iframe引用的方法,使用X-Frame-Options实现,需要的朋友可以参考下

可以使用php或nginx等添加X-Frame-Options header来控制frame权限
X-Frame-Options有三个可选的值

DENY浏览器拒绝当前页面加载任何Frame页面
SAMEORIGINframe页面的地址只能为同源域名下的页面
ALLOW-FROM允许frame加载的页面地址

PHP代码:

header(‘X-Frame-Options:Deny');

Nginx配置:

add_header X-Frame-Options SAMEORIGIN

可以加在locaion中

location /
{
  add_header X-Frame-Options SAMEORIGIN
}

Apache配置:

Header always append X-Frame-Options SAMEORIGIN

使用后不充许frame的页面会显示一个白板。

IIS方法

在web.config文件中加

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

js方法

很多都是用这种方放,服务器端设置有时候有问题

if (self.frameElement && self.frameElement.tagName == "IFRAME") {
  .location.href=self.location.href;
}
if (window.frames.length != parent.frames.length) {
  .location.href=self.location.href;
}
if (self != ) { 
  .location.href=self.location.href;
}

Meta标签方法

<meta http-equiv="X-FRAME-OPTIONS" content="DENY">

css禁止其他人的iframe,允许自己的

<style type="text/css">
iframe{v:expression (this.src='about:blank',this.outerHTML='');}
#mine{v:expression() !important}
</style>
<body> 内容<iframe src="http://.baidu."></iframe> 百度 <iframe src="http://.126./"></iframe>  126邮箱<iframe src="http://.163."></iframe> 网易<p>以上三个firame不允许</p> <p>firame google 是我要的.</p> <p><iframe id="mine" name="myfirame" src="http://.google./" width=800 height=400></iframe></p>

参考

https://developer.mozilla./en-US/docs/Web/HTTP/X-Frame-Options?redirectlocale=en-US&redirectslug=The_X-FRAME-OPTIONS_response_header

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by