使用设置报头x-Frame-Options限制iframe网页嵌套

时间:2025-01-16 10:04:50

x-frame-options的出现一部分是为了防止一些别有用心的者制作钓鱼网站,现在支持的浏览器有一下:

  • chrome 4.1.249.1042
  • firefox 3.6.9(1.9.2.9)
  • IE 8.0
  • opera 10.50
  • safari

使用 X-Frame-Options 有三个可选的值:

DENY:浏览器拒绝当前页面加载任何Frame页面

SAMEORIGIN:frame页面的地址只能为同源域名下的页面

ALLOW-FROM:允许frame加载的页面地址

PHP代码:

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

  

Nginx配置:

add_header X-Frame-Options SAMEORIGIN

  

Apache配置:

Header always append X-Frame-Options SAMEORIGIN

在grape&Sinatra中设置办法

get "/url" do
response.headers["X-Frame-Options"] = ''
do something
end

  

在header中增加  X-Frame-Options SAMEORIGIN  输出,如下图:

使用设置报头x-Frame-Options限制iframe网页嵌套

更多详解:https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet

其它防止被 FRAME 加载你的网站页面方法:

1. meta 标签:很多时候没有效果,无视。

<meta http-equiv="Windows-Target" contect="_top">

  

2. js 判断顶层窗口跳转,可轻易破解,意义不大。

function locationTop(){
if (top.location != self.location) {
top.location = self.location;
return false;
}
return true;
}
locationTop();

  破解:

// 顶层窗口中放入代码  var location = document.location;  // 或者 var location = "";