當然也是因為被360檢測到了示"X-Frame-Options頭未設置",根據360的提示與百度了一些網上的一些資料整理了下,完美解決問題。
首先看下360給出的方案,但么有針對服務器的具體設置,不是每個人對服務器都很懂啊。
描述: 目標服務器沒有返回一個X-Frame-Options頭。
X-Frame-Options HTTP響應頭是用來確認是否瀏覽器可以在frame或iframe標簽中渲染一個頁面,網站可以用這個頭來保證他們的內容不會被嵌入到其它網站中,以來避免點擊劫持。
危害: 攻擊者可以使用一個透明的、不可見的iframe,覆蓋在目標網頁上,然后誘使用戶在該網頁上進行操作,此時用戶將在不知情的情況下點擊透明的iframe頁面。通過調整iframe頁面的位置,可以誘使用戶恰好點擊iframe頁面的一些功能性按鈕上,導致被劫持。
解決方案:
修改web服務器配置,添加X-frame-options響應頭。賦值有如下三種:
(1)DENY:不能被嵌入到任何iframe或frame中。
(2)SAMEORIGIN:頁面只能被本站頁面嵌入到iframe或者frame中。
(3)ALLOW-FROM uri:只能被嵌入到指定域名的框架中。
也可在代碼中加入,在PHP中加入:
header('X-Frame-Options: deny');
下面繼續來看下武林網之家從網上整理的更詳細的方法
防止網頁被Frame,方法有很多種;
方法一: 常見的比如使用js,判斷頂層窗口跳轉:
(function () {if (window != window.top) {window.top.location.replace(window.location); //或者干別的事情}})();
一般這樣夠用了,但是有一次發現失效了,看了一下人家網站就是頂層窗口中的代碼,發現這段代碼:
var location = document.location;// 或者 var location = "";
輕輕松松被破解了,悲劇。
方法二: meta 標簽:基本沒什么效果,所以也放棄了:
<meta http-equiv="Windows-Target" contect="_top">
方法三:使用HTTP 響應頭信息中的 X-Frame-Options屬性
使用 X-Frame-Options 有三個可選的值:
DENY
:瀏覽器拒絕當前頁面加載任何Frame頁面SAMEORIGIN
:frame頁面的地址只能為同源域名下的頁面ALLOW-FROM
:origin為允許frame加載的頁面地址
絕大部分瀏覽器支持:
配置 IIS
IIS6中通過HTTP頭設置即可
IIS7中可以通過web.config也可以通過類似上面的設置
配置 IIS 發送 X-Frame-Options 響應頭,添加下面的配置到 Web.config 文件中:
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ...</system.webServer>
新聞熱點
疑難解答
圖片精選