破解网站禁止复制页面内容和图片(如何做到内容不允许选择复制如果不希望网页内容被随意取用)

优采云 发布时间: 2021-12-21 12:20

  破解网站禁止复制页面内容和图片(如何做到内容不允许选择复制如果不希望网页内容被随意取用)

  在平时的学习和工作中,大家难免会有找资料的需要。从每个网站中提取文字和图片已经是例行操作。但是有时候你可能会发现某个网站的文字无法选择,图片也无法右键下载!那么文字无法复制,如果我真的想提取它怎么办?

  这个文章会分两部分给大家解释一下这个问题:

  如果您不是站长,可以跳过第一部分以查看解决方案。

  重要声明:本文仅用于鼓励网络学习和交流,网站十六进制复制可能因版权、知识产权、法律法规等限制和措施而采取,请勿使用本站对任何非法用途,作者(卡米莱)不承担相关责任。

  

  如何让内容不允许选择复制

  如果不想随意使用网页内容,基本思路可以从两个方向入手:使用什么技术,禁止什么行为。

  对于一般的网站,可以采用的技术有:被CSS禁止、被标签属性禁止、被Javascript禁止。可能你的cms系统可以找到实现类似功能的插件,但原理基本就是以上三种。还有两种歪方法:插入一个100%透明度的遮罩层,用iframe调用。

  对于一般的网站,可以禁止的操作包括:禁用选择(浏览器不能选择文本等内容)、禁止鼠标右键(不能调用页面右键菜单)、不能使用Ctrl+C(块特定的复制指令输入)。

  因此,结合每种技术的功能限制,可以组合不同的具体操作。具体可以采用以下方法:

  以上方法可以同时使用。但需要注意的是,任何方法都不是没有后门的,任何额外的代码都会减慢网站的速度,并且可以适度保护内容。

  01 使用CSS禁止选择

  通过在访问页面的用户的-select操作中添加none属性,实现用户无权限进行选择的效果。可以直接在root或者某个类中添加如下CSS代码来保护内容。

  *{

moz-user-select: -moz-none;

-moz-user-select: none;

-o-user-select:none;

-khtml-user-select:none;

-webkit-user-select:none;

-ms-user-select:none;

user-select:none;

}

  如果只希望某类用户有选择权,可以单独删除none这一行。

  02 使用CSS创建遮罩层

  所谓遮罩层,可以理解为在内容物上覆盖一层透明塑料薄膜,用户只能触摸塑料薄膜而不能触摸内容物,从而达到保护的效果。

  具体使用时,可以将遮罩层设置为一个类,有针对性地保护某个部位。请注意,当前遮罩层可能会被某些搜索引擎误解,从而影响用户使用的浮动广告,从而可能会影响 SEO 的效果。

  .mark{

background:#000!important;

opacity:.01!important; //透明度调整

position:fixed!important;

left:0!important;

top:0!important;

width:100%!important;

height:100%!important;

z-index:998!important; //高度调整,注意应为全站最高

pointer-events: none!important; //禁止操作穿透

}

  03 使用标签属性禁止选择和右键菜单

  在 HTML 中,有两个标签属性,oncontextmenu 和 onselectstart,可以添加到任意位置。这两个数学控制了右键单击和选择后页面的响应方式。可以通过修改内容来实现右键菜单添加附加选项的功能。但是这里我们直接设置为不返回内容。以文章标签为例,同时添加禁止右键和禁止选择:

  您也可以只添加禁止右键单击/禁止选择。

  对于图片,也可以选择从meta标签开始。添加下面这句话meta,可以禁止浏览器的图片工具,以达到无法下载页面图片的效果。

  04 使用Javascript禁止选择和右键菜单

  在讨论这个问题之前,让我先谈谈JS如何添加。添加JS有两种常见的方式:引用JS文件和插入HTML文本。例如,如果您的整个站点都引用了某个 JS,您可以选择将以下代码插入到该 JS 文件中。如果方便修改 HTML 或 PHP,那么可以直接在 HTML 中编写 JS 脚本。

  

//禁用右键

document.oncontextmenu=function(){

return false;

}

//禁用选择

document.onselectstart=function(){

return false;

}

//禁用ctrl+c

document.onkeydown=function(){

if((event.ctrlKey) && (window.event.keycode==67)){

event.returnValue=false;

}

};

//禁用右键方法2(直接禁止在改页面上输入右键)

document.onmousedown=function(){

if(event.button==2){

event.returnValue=false;

}

}

  还可以实现通过JS复制时添加文字的效果。比如复制一段文字,粘贴后会出现网站的版权声明,提醒用户不要不当使用这段文字。

  

function addLink() {

var body_element = document.body;

var selection;

selection = window.getSelection();

if (window.clipboardData) {

// Internet Explorer

var pagelink ="\r\n\r\n 原文出自[卡米雷特的小站(kamilet.cn)],转载请附带原文链接: "+document.location.href+"";

var copytext = selection + pagelink;

window.clipboardData.setData ("Text", copytext);

return false;

} else {

var pagelink = " \r\n 原文出自[卡米雷特的小站(kamilet.cn)],转载请附带原文链接: "+document.location.href+"";

var copytext = selection + pagelink;

var newdiv = document.createElement('div');

newdiv.style.position='absolute';

newdiv.style.left='-99999px';

body_element.appendChild(newdiv);

newdiv.innerHTML = copytext;

selection.selectAllChildren(newdiv);

window.setTimeout(function() {

body_element.removeChild(newdiv);

},0);

}

}

document.oncopy = addLink;

  05 使用 iframe 调用

  这种方法的原理很简单:使用禁止任何脚本的页面作为iframe调用内容页面,这样就不能在首页使用脚本功能。这包括右键、复制、选择等...但是问题是网站的结构会有很大的问题,因为所有的页面都要被另外一个页面封装,而对外显示的页面没有内容太多,对SEO也很不利。不过毕竟这个方法也不是不能用。

  共2页,当前页1 12»

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线