防止网站页面被其他网站iframe引用方法

在响应头里加一个X-Frame-Options

其取值有三种,大部分浏览器都支持:

1
2
3
DENY: 浏览器拒绝当前页面被任何Frame页面嵌套
SAMEORIGIN: frame页面的地址只能在同源域名下被嵌套
ALLOW-FROM [url]: 页面只能被指定的url嵌入到iframe或 frame中

nginx配置

1
add_header X-Frame-Options SAMEORIGIN

apache配置

1
Header always append X-Frame-Options SAMEORIGIN

页面meta配置

1
<meta http-equiv="X-Frame-Options" content="deny">

js脚本判断

1
2
3
4
5
6
7
8
9
10
11
12
//方式一    
if (self.frameElement && self.frameElement.tagName == "IFRAME") {
location.href = "about:blank";
}
//方式二
if (window.frames.length != parent.frames.length) {
location.href = "about:blank";
}
//方式三
if (self != top) {
location.href = "about:blank";
}

禁用iframe内的JS脚本

1
<noscript><iframe src=fillseo.html></iframe></noscript>