2011-04-02 93 views
10

我認爲有人使用iframe來竊取我的內容。我的網站是一個論壇,用戶剛剛向我彙報了他們。防止iframe被竊取

如何以編程方式(php,JavaScript,jQuery,HTML)找到他們的網站?

這是允許在互聯網上爲他們做到這一點,我可以採取行動嗎?

回答

26

使用JavaScript,你可以做

if(window.top==window){ 
//not inside iframe 
} else { 
    if(parent.parent.someFunction){ 
     parent.parent.someFunction(); 
    } else { 
     alert("framing is not allowed") 
    } 
} 

OR

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

一些現代的瀏覽器還支持X-FRAME-OPTIONS頭,可以有兩個值:

* DENY – prevents the page from being rendered if it is contained in a frame 
* SAMEORIGIN – same as above, unless the page belongs to the same domain as the top-level frameset holder. 

支持標題的瀏覽器:

* IE8 and IE9 
* Opera 10.50 
* Safari 4 
* Chrome 4.1.249.1042 
* Firefox with NoScript 
4

如果你能找出它是誰,你可以告訴他們他們不能以這種方式使用你的內容。如果你擁有自己的網站,你可以決定如何使用它。

看一看framkillers:http://en.wikipedia.org/wiki/Framekiller

這是一種技術,以阻止iframe中被顯示的網站。請記住,甚至可以殺死框架式殺手。

+0

所以基本上,如果他們承諾,我不能阻止他們編程。謝謝。我確定我的網站是如何使用的,因爲我允許它被公衆使用,那麼我是否仍然可以追蹤竊取者? – David19801 2011-04-02 08:54:59

+0

當然。這是你自己的財產,所以你可以口述這些條款。問題在執行。取決於涉及哪個國家,這可能有點困難。但您可以隨時直接向ISP發送通知。想不通我的頭頂上的任何東西來獲取通過代碼列表。我在ky手機上,所以現在無法搜索:) – JohnP 2011-04-02 09:37:26

+0

另外,您也可以查看jackjoe的解決方案。將根據您的設置工作。像pst提到的那樣,他們可能會很好,所以先問問吧! – JohnP 2011-04-02 09:43:16

3

使用,我建議在這裏同樣的方法:How to limit display of iframe from an external site to specific domains only

在堅果殼,你在每一個頁面中添加一個PHP腳本(在你的情況下,它很可能會只有一個,假設它是一個模板),這腳本將查看範圍限制爲一個(或多個)域名。

此方法比JavaScript方法更好,因爲用戶可能會禁用它。

+1

這種方法有一個很大的缺點 - 一些firwalls阻止瀏覽器發送Referer頭。在這種情況下,用戶將無法訪問該頁面。 – Rafael 2011-04-02 09:57:15

+0

這是一個很好的評論,在這種情況下,我會爲所有「禁止」域名發佈消息,甚至包括那些誤報,與網站的聯繫人聯繫,以便用戶可以聯繫並請求將其添加爲安全域。 OP可以通過服務器日誌檢查哪些是竊取,並排除那些,即使他們通過聯繫人請求。我仍然比JavaScript方法更喜歡這種方法。 – jackJoe 2011-04-02 11:26:26

+0

每個人都已啓用JavaScript。如果您沒有啓用JavaScript,您必須生活在古老的世界。幾乎網上的每個站點都以某種方式使用javaScript。禁用JavaScript意味着將自己從網絡上斷開。 – Pinkie 2011-04-02 18:55:06

0

你可以使用這個JS代碼在您的網站的頂部(標題頁)

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