网站怎么设置防止复制?相信很多网站都会遭遇这么一个问题,辛辛苦苦手打的内容就被送复制了,是不是非常的不爽今天就分享一串神奇代码,向伸手党说不。
网站防止复制实现原理
通过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技术还是会想尽办法采集内容,真是防不胜放,我们只是做好网站防复制,增加复制的难度,降低被复制的概率!
标签: