簡體   English   中英

如何防止從我的網頁復制文本?

[英]How can I prevent text from being copied from my webpage?

我正在嘗試編寫一個在線編程測驗應用程序。 因此,許多問題可能會像“以下代碼的輸出是什么?”。

用戶可能只是復制粘貼整個代碼並嘗試在另一個窗口中運行它。 有什么好辦法可以阻止這個嗎? 我知道我們可以禁用右鍵單擊和Ctrl-C,但還有更優雅的方法嗎? 更好的是,應用程序是否有辦法知道用戶正在嘗試復制內容,並告知用戶不允許這樣做?

(標記javascript只是因為我不知道要將此標記為什么。如果您能想到某些內容,請重新選擇更有意義的內容)

防止這種情況的最好方法是根本沒有代碼。 任何類型的js都不會阻止任何人(特別是編碼員)。 我見過的最好的選擇是使用圖像。

為了真正防止任何文本篡改,您可以將代碼段轉換為圖像並發布以供用戶閱讀和解釋。

圖像解決方案仍然可以使用OCR應用程序解釋圖像,但使用OCR比簡單復制和粘貼要復雜得多。

這是在線世界中一個持續存在的問題。 防止復制實際上相當困難。 您可以使用Javascript來禁用右鍵單擊和Ctrl-C,但有很多方法可以解決這個問題。 一種方法可能是將問題放在圖形中,而不是文本中。 用戶仍然可以下載圖片,但對他們來說不太有用。

我認為這不能用javascript完成...如果你能阻止一個正確的cick,你不能阻止用戶使用curl並在源代碼中顯示...

最好的解決方案可能是渲染代碼服務器的圖像...或者因此使用閃存。

如果您不希望用戶復制和粘貼代碼,請使用GD等庫將其渲染為圖像並顯示此圖像。

實際上,處理此問題的最佳方法是禁用文本選擇 ,但這會阻止90%的用戶,確定的用戶可以使用像Firebug這樣簡單的東西來摧毀你。 如果他們正在查看代碼,他們很有可能很容易處理這個問題。

如果您使用實時文本,則沒有100%的解決方案。 另一方面,您可以使用圖像或SWF。 在任何一種情況下,用戶都必須手動鍵入所有代碼,這可能是足夠的威懾力。

就個人而言,如果它是我的網站,我會調查圖像處理程序,以便我可以輕松生成和緩存文件。

如果代碼在源代碼頁上以文本形式顯示,則無法阻止用戶在您的網頁中執行他想要的操作。

您可以使用戶更難以復制代碼,但您無法阻止它。

即使您將代碼渲染為圖像,用戶仍然可以簡單地從圖像中讀取和寫回代碼。

嘗試阻止用戶從您的網站復制+粘貼文本時,您會遇到實際問題。 許多人已經嘗試過這種方式,並取得了不同程度的成功,但最終,即使是最好的解決方案也有一個開放的漏洞,中間確定的用戶可以通過這些漏洞。

在您的特定示例中,更好的解決方案可能是修改代碼,使其看起來正確但無法編譯。 您可以通過將代碼中的字符替換為看起來相同但會阻塞編譯器的其他字符來完成此操作。

例如,但不打破空格和其他空格字符而不是普通空格,大多數編譯器會抱怨它。 如果不能解決問題,那么有許多希臘字母在視覺上與普通的ASCII字母相同,但實際上是不同的字符代碼; Μ替換“M”的一個實例Μ 但不是其他的,你的代碼看起來會很好,但會破壞編譯器。

如果你確定的副本+粘貼騙子仍然設法讓程序在那之后工作,那么他們可能應該得到答案的分數。 ;-)

請參閱此站點以獲取帶有HTML實體代碼的不常見字符列表,其中許多代碼適用於此類偷偷摸摸的詭計。

你不能。 最好的方法是使用圖像。 或者您可以使用onSelectStart掛鈎來提供自己的功能

<body onselectstart="return false">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM