2016-12-16 135 views
2

我試圖在另一個站點嘗試iframe我的網站時顯示錯誤消息。我使用的.htaccess:在框中顯示消息.htaccess

Header set X-Frame-Options DENY

然而,這僅僅是創建一個空白頁,而iframe中。是否可以顯示錯誤消息,而不是隻是一個空白的屏幕?

更新

尋找任何JavaScript解決方案

+0

如果你不找JavaScript的解決方案你或許應該刪除javascript標籤。 –

+0

@ SeanWessell-好點,我忘了我有! – Zackh105

+0

你應該看看SO使用的大片。嘗試從SO構建一個頁面,看看會發生什麼 – 2016-12-23 12:55:26

回答

0

HTML

<!DOCTYPE html> 

<html lang=en> 
    <head> 
     <title>Blocking iFrame with JS</title> 
    </head> 
    <body> 
     <p>page content</p> 

     <script src='iframe/blocker.js'></script> 
    </body> 
</html> 

JS

if (window.top !== window.self) window.top.location.replace(window.self.location.href); 

注:這JS代碼重定向到父頁面(iframe的位置坐) - 當然,你也可以使用covener的解決方案,他的解決你的問題很有意思:)

爲什麼它是壞的,如果你的頁面是在源頁面上「的iframe」

要求

更多信息:啓用JavaScript

缺點:我不會推薦,因爲攻擊者擁有所有你做同樣的工具,他們可以使用沙箱,以防止你運行的JavaScript或重定向窗口

來源: https://www.tinfoilsecurity.com/blog/protect-your-website-from-embedded-content-iframe-security

0

您可以使用mod_rewrite或<if>來檢查引用鏈接(它是iframe中的封閉頁面)並將站點的整個部分重定向到靜態文件。

這裏有許多可能的首發食譜對證接受引薦域的列表中的一個:!

RewriteEngine敘述ON 的RewriteCond%{REQUEST_URI} iframe_err.html 的RewriteCond%{HTTP_REFERER} ^($ | HTTP [ s]://(www。)?mydomain.com) RewriteRule。* /iframe_err.html

1

iframes由瀏覽器處理。

客戶端決定是否顯示iframe的內容以及是否兌現SAMEORIGIN選項。

即使使用.htaccess,服務器也不知道整個頁面的頁面請求之間的差異,例如某人直接訪問頁面或從iframe訪問頁面。

你可以做的是檢查HTTP_REFERER。檢查這個樣本我還沒有測試過,但想法是阻止頁面從您自己的網站以外的任何地方訪問。

RewriteEngine On 

RewriteCond %{QUERY_STRING} !^id=[^&]+ [NC] 
RewriteCond %{HTTP_REFERER} !^http://your-website.com 
# then redirect to a different page 
RewriteRule !^start start [L,NC,R=302] 

但正如我前面提到的HTTP_REFERER它不是100%可靠的解決方案,可以被欺騙。但是,互聯網上的任何事情都不是100%可靠的。