在現(xiàn)在的互聯(lián)網(wǎng)環(huán)境下,只要網(wǎng)站可以被用戶訪問,就沒有辦法百分之百杜絕網(wǎng)站數(shù)據(jù)被復(fù)制,但對(duì)于一些數(shù)據(jù)就是核心的網(wǎng)站來說,如何防止網(wǎng)站數(shù)據(jù)被批量復(fù)制十分重要。就目前我們開發(fā)的一些庫存管理系統(tǒng)和產(chǎn)品數(shù)據(jù)庫系統(tǒng)來看,這些系統(tǒng)都必須要給用戶查詢使用,但是又非常擔(dān)心數(shù)據(jù)被用戶批量復(fù)制走。畢竟這些數(shù)據(jù)就是這些項(xiàng)目的核心,客戶需要花費(fèi)幾個(gè)月甚至幾年的時(shí)間來收集整理這些數(shù)據(jù),當(dāng)然不想被別人動(dòng)動(dòng)手指就復(fù)制走了。所以,在沒有辦法避免用戶和數(shù)據(jù)接觸的情況下,我們需要提高用戶復(fù)制網(wǎng)站內(nèi)容的成本,可以考慮從以下幾個(gè)細(xì)節(jié)著手處理。
訪問數(shù)據(jù)需要授權(quán),避免匿名訪問:為系統(tǒng)配備開發(fā)一套用戶管理系統(tǒng),給每一位客戶都設(shè)置獨(dú)立的用戶名和密碼。這樣做可以在很大程度上過濾掉同行或者惡意用戶,而且,后期一旦發(fā)現(xiàn)用戶疑似有惡意復(fù)制或者賬戶分享的行為,就可以單獨(dú)禁止這個(gè)賬戶繼續(xù)訪問系統(tǒng)的數(shù)據(jù)。
禁止右鍵和復(fù)制:我們可以在代碼中加入特定的JS代碼,來屏蔽瀏覽器的右鍵菜單和CRTL/COMMAND+C復(fù)制快捷鍵,除非用戶使用特定的瀏覽器,或者通過查看源代碼模式來復(fù)制,否則,這在很大程度上提高了用戶復(fù)制的難度。但是一些系統(tǒng)本身是需要讓用戶復(fù)制的,那么這個(gè)方法可能就不太適用。
避免用戶接觸全部數(shù)據(jù):假設(shè)系統(tǒng)中一共有10萬條數(shù)據(jù),我們每一頁列出25條數(shù)據(jù),一共4000頁。盡管看起來這是4000頁是一個(gè)沒有辦法一頁一頁去復(fù)制,但是在數(shù)據(jù)十分珍貴的今天,真的有人會(huì)花心思和時(shí)間來一頁一頁復(fù)制的。有一些更加高級(jí)的手法,可以寫一個(gè)爬蟲來逐頁復(fù)制。所以,我們可以設(shè)置一個(gè)門檻,杜絕用戶可以有規(guī)律的接觸完成的數(shù)據(jù)。例如默認(rèn)不顯示任何數(shù)據(jù),必須用戶發(fā)起兩個(gè)字節(jié)以上的搜索才顯示對(duì)應(yīng)的數(shù)據(jù)。這樣一來,用戶幾乎就沒有辦法完整的批量復(fù)制走數(shù)據(jù)了。
通過以上方法的限制,對(duì)于普通用戶來說,要完整的批量復(fù)制走網(wǎng)站中的數(shù)據(jù)幾乎是不可能的了,這個(gè)時(shí)候,就可以放心大膽的讓用戶使用系統(tǒng)了。