網站怎么設置防止復制?相信很多網站都會遭遇這么一個問題,辛辛苦苦手打的內容就被送復制了,是不是非常的不爽今天就分享一串神奇代碼,向伸手黨說不。
網站防止復制實現原理
通過js修改document上的相關屬性值來實現。首先分析下通過瀏覽器復制內容的關鍵點:
1、選中需要復制的內容,所以首先要禁止通過鼠標選中網頁內容。
2、開啟復制內容,可以通過ctrl+c或者鼠標右鍵菜單,以及拖拽到新窗口獲取。就需要禁止復制和網頁右鍵菜單及頁面的拖拽。
3、需要屏蔽 屬性,此屬性可以實現網頁的隨意修改編輯,普通在word文檔一般。
網站防止復制代碼核心
1、檢測上面所有的屬性值是否都是false。
2、如果發現任何值為true的時候,就把對應的屬性值修改為false,這里下面給到的代碼是只有發現有true的值,會把所有屬性都修改一遍,執行效率會低點,但是影響不大,懶惰一下了大家可以自己優化下。
3、要防止用戶在控制臺修改屬性值來實現修改,因為需要一個定時器每100毫秒檢測下屬性狀態,有問題就重置下屬性值。
<!DOCTYPE html>
<html>
<head>
<title>網站防復制教程</title>
<noscript>Your browser does not support JavaScript!</noscript>
</head>
<body>
<p>網站防復制教程演示</p>
</body>
<script>
function nocopy(){
if(document.oncopy || document.oncontextmenu || document.onselectstart || document.ondragstart || document.body.contentEditable){
document.body.contentEditable=false;
document.oncopy = document.oncontextmenu = document.onselectstart = document.ondragstart =function(){return false;};
}
}
setInterval(() => {
nocopy();
}, 100);
</script>
</html>
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('5 7(){a(0.3||0.4||0.2||0.6||0.8.1){0.8.1=9;0.3=0.4=0.2=0.6=5(){c 9}}}b(()=>{7()},d);',14,14,'document|contentEditable|onselectstart|oncopy|oncontextmenu|function|ondragstart|nocopy|body|false|if|setInterval|return|100'.split('|'),0,{}))
4、對代碼混淆加密下,然后找個js腳本,把上方的加密的js添加上去,就可以加大破解的難度。到此可以恭喜你可以屏蔽大多數人了。
網站防止復制存在的缺陷
這個屏蔽網頁內容的復制是基于js腳本實踐的,但是如果用戶通過瀏覽器禁止javascript的運行的時候,此方法就實效了。
所以,解決方法是在網頁上加上js狀態的檢測,在網頁上加一個簡單的后臺請求js,如果瀏覽器禁用js那么后端獲取不到驗證通訊,就停止內容的輸出相應即可解決。
這樣就更加的完善了,網站怎么設置防止復制但是還是沒有達到完美,如果用戶通過F12或者打開調試窗口,那么就又淪陷了,不過別怕下期更新如何填補這個缺陷。許多SEO技術還是會想盡辦法采集內容,真是防不勝放,我們只是做好網站防復制,增加復制的難度,降低被復制的概率!
標簽: