2010-05-19 91 views
6

我正在創建一個網站,並且我的客戶需求爲restrict user to copy TEXT displayed on the web page。我該怎麼做?我在我的應用程序中使用PHP和HTML。如何限制用戶複製網頁內容

+1

我認爲你應該更具體一些,並且確切地說*爲什麼*這些信息不應該被允許被複制,我們可能會給你一個替代解決方案 – James 2010-05-19 13:18:41

+1

我很抱歉,但你的客戶必須是白癡。 – 2010-05-19 16:14:14

+1

@Josh:對不起,但你的拼寫檢查器肯定會讓你看起來馬虎, – 2010-05-19 18:15:26

回答

2

即使他要在Flash中構建系統,用戶仍然可以手寫內容,如果他們迫切希望它,就像其他人都說不可能阻止一個有決心的人獲取您的內容,除非你不要不顯示它。

2

不,AFAIK,你沒辦法做到這一點。除非你在Flash或其他非HTML插件內容中構建整個事物。

+2

是的,但是甚至與...沒有任何東西阻止你使用OCR來抓取文本。唯一的工作副本保護是不要在線。 :) – 2010-05-19 13:18:36

+0

用戶仍然可以按打印屏幕按鈕:p – 2010-05-19 13:19:31

+2

@Gert @Ondrej 是的,他們也可以簡單地手工複製。另外,這些完全由Flash組成的網站真的讓我感到嘔吐。 – shinkou 2010-05-19 13:23:59

2

簡短的回答是,你不能(容易)做到這一點 - 如果它在瀏覽器是可見的話,是得到某種方式。如果您只是顯示文本,則情況尤其如此。

24

沒有試圖粗魯,但爲什麼人們不斷問這個?如果你希望人們能夠看到這些信息,那麼你不能阻止他們複製它。任何類型的JavaScript廢話,以防止右鍵單擊或選擇或任何其他不會阻止確定的小偷,並會惹惱合法用戶。

+0

由於人們爲原創內容付費,並且不希望在其他10個國家/地區的其他10個網站上看到它們,同時他們的網站在搜索引擎評級中受到衝擊。 – Rire1979 2010-05-19 13:20:37

+3

@Rire:歡迎來到現實世界... – James 2010-05-19 13:25:43

+0

@ Rire1979:那麼不要發佈... 至少,如果它被複制,這意味着它是好的! – 2010-05-19 13:26:16

3

基本上,你不能。即使有辦法限制用戶複製&粘貼文本,他們總是可以抓住屏幕並以某種方式將其翻譯成文本。

我建議不要嘗試以任何方式限制用戶。這不是很友善,人們通常會討厭它。如果你想創建一些私人內容,只需讓人們登錄,做一些ACL檢查,並希望他們不會複製到別的地方。您也可以考慮使用某種許可來阻止人們「竊取」您的內容。

4

你可以強迫人們撥打一個電話號碼,聽到你的網站,一個很好的解決方案的文本,如果你不希望別人複製/粘貼您的網頁

+6

,但在手機上添加一條警告,說「你不能寫下你的耳朵」,否則人們可能會複製你的高安全性網站 – vvo 2010-05-19 13:19:59

+0

雖然這不會輕微打敗將內容放在網絡上的開始?這個想法是,你希望人們能夠看到網絡上的內容,但不允許複製它。 – GShenanigan 2010-05-19 13:41:25

0

,這是不可能的文本。

如果您將信息發送給他們以便他們可以看到,則無法阻止某人獲取信息。用戶可以簡單地查看HTML的源代碼,看看文本是什麼,並從那裏複製它,並且沒有什麼可以阻止它們。

用JavaScript實現任何事情是完全無效的,因爲任何人都可以直接在瀏覽器中禁用JavaScript和周圍得到的,你會最終只會討厭你的用戶。

,以防止有人從網頁複製的文字是不把它放在網頁上擺在首位的唯一途徑。

0

如果您通過圖像或閃光燈呈現內容,並且無法保存,因爲這可能是解決方案。我發現了一些可能對保護圖像here有用的資源,以及有關「防止」打印屏幕here的一些信息。

不幸的是,你的問題不容易解決,因爲一旦內容被傳遞給用戶,他們對信息的最終控制(誰在阻止他們採取該網站的實際畫面?)。

0

那麼,PHP與它無關,因爲這是服務器端。您可能可以在JavaScript中製作一些東西(禁用右鍵單擊相當容易;也可以禁用文本高亮顯示),但解決此問題相當容易。做不到一切,用戶可以查看源代碼,但可以過加密:

document.write(base64decode('encoded string containing entire HTML document')); 

這是坦率地說,既惱人的和毫無意義的。任何可供用戶使用的東西都可以採取某種方式。即使閃光也不是免疫的。 (有可用於拍攝視頻在flash的瀏覽器插件)。

+0

這就是javascript調試器的用途。或者,如果失敗了,就在其他地方的字符串上運行b64d。 – muhmuhten 2010-05-19 14:07:10

12

正如每前面提到的回答,有沒有辦法阻止別人能夠從你的網站上使用該副本。即使您使用方法來限制直接複製和粘貼,也總是會有截圖,OCR或手寫的古老文字。

從不同的角度看它......如果內容是敏感的,你的客戶不希望它分佈式的,你可以把它添加到需要註冊和認證,以訪問您的網站的一部分。通過這樣做,你可以要求用戶同意就註冊的條款和條件,明確拒絕許可,複製任何從網站的內容。

只是一個想法。

+3

+1,很高興看到除「你不能」之外的其他答案。我們都知道他不能,多說一句也沒用。讓我們提供替代品:-) – Josh 2010-05-19 13:28:24

+0

是的,「讓任何雅虎在互聯網上覆制這個」有很大的區別,並且把它放在基本認證之後。 – 2010-05-19 15:47:43

5

其他每個回答說,沒有什麼技術上你可以阻止人們複製頁面的文本。要將文本顯示給用戶,您必須將其發送給用戶的計算機,這意味着他們可以複製它。

但是,您可以合法防止它們複製與服務的文字像CopyScape

Copyscape致力於保護 寶貴的在線內容。我們 提供世界上最強大和 最流行的在線抄襲 檢測解決方案,通過 獨立測試排名第一。 Copyscape的 產品受全球數百萬網站所有者的信賴 檢查其新內容的原創性 , 防止重複的內容,並搜索 在線內容的現有內容的副本。

Copyscape爲您的網頁 的 找到副本提供一個免費的在線服務,以及兩個更強大的 專業的解決方案,以防止 內容盜竊和內容詐騙:

Copyscape高級提供了更多的 強大剽竊檢測比 免費服務,加上其他 功能,包括複製粘貼 原創性檢查,批量搜索,案例 跟蹤和API

Copysentry通過 爲您的網站全面 保護每天自動掃描網絡 或每週和電子郵件時,你發現你的內容的新 副本。

Read more on their site

2

而這一切都回來到「爲什麼」?如果這些信息是祕密的,不要先把它展示給某個人。正如其他人所說,如果你擔心版權侵犯,一旦有人看到文本,即使你以某種方式提出了一個出色的技術解決方案,以防止他們以任何方式複製文本(我懷疑這是可能的),但他們可以隨時用手寫下來,或者用數碼相機拍攝屏幕圖像,然後對其進行OCR處理。在數字時代,您對版權侵犯的保護比技術更合法:如果有人盜竊您的材料並將其轉售,請起訴他們。

根據您的材料的性質,您可能會使人們在一個屏幕上顯示所有內容變得尷尬。就像,如果你正在運行一個在線電話簿,並且你害怕人們竊取你的房源,而不是在一個巨大的頁面上顯示大量的房源 - 所有的「A」或者其他 - 你可能需要人輸入搜索條件,並且一次只顯示兩個或三個可能的匹配。然後,如果有人想竊取您的物品,他們將不得不花費數千小時輸入每個可想象的搜索詞。現在我想起來了,前幾天我在使用一些電話簿網站,它給了我一個可能匹配的姓名和地址列表,但是我必須點擊每個電話號碼才能獲得電話號碼。當時我認爲「愚蠢的滋擾」,但現在它擊中了我:他們可能有相同的想法,我簡單地認爲是原創的。無論如何,如果你的材料是一個單獨的factoids數據庫,這可能是實用的。如果這是一篇關於立陶宛經濟史的文章或者其他類似的文章,那麼用戶就可以通過一些細小的東西來尋找它,這會讓人們拋棄你並在別處尋找。

就我個人而言,我採取了我根本不在乎的哲學。當我在對我感興趣的主題進行Google搜索併發布了我寫過的文章的時候,我曾經在很多場合中發表過很多場合。我甚至曾經在那些預先寫好的學生論文網站上發現了一篇文章。 (當然,並不是說任何學生只會粘貼他的名字,打印出來,然後交給他們,他們「僅用於研究目的」,我確定他們是否知道學生聲稱這是他們自己的工作,那麼我會馬上把這個網站拿下來。)所以我發佈在網上的一篇文章,免費提供給任何人,這些人現在正在向不誠實的學生收取25美元的費用!我的反應是,很酷!當別人引用你時,這是一回事,但當別人剽竊你的時候,你真的到了一個很大的時間!

0

您可能希望在您的目標受衆看,以及幫助確定要如何使它更難(因爲你不能切實防止它)..

對於簡單的用戶只需禁用右鍵單擊可能足以防止它。如同其他人所建議的那樣,創造一個形象要做更多的工作。由於您可以輕鬆地拖動圖片,使用IMG標記,從頁面直接拖到桌面或任何位置,您可能希望在DIV上設置背景圖像。從那裏,你可以使用Flash,或其他一些RIA,或甚至SVG/VML ..

任何人誰知道如何做一個屏幕捕捉真正縮小了什麼,你可以切實實現:(

0
<script type="text/JavaScript"> 
    //script to bar copying of website contents 
    function killCopy(e){ 
     return false 
    } 
    function reEnable(){ 
     return true 
    } 
    document.onselectstart=new Function("return false"){ 
     if (window.sidebar){ 
      document.onmousedown=killcopy 
      document.onclick=reEnable 
     } 
    }; 
    </script> 
+0

此解決方案只適用於IE。 – 2012-09-23 16:34:49