破解网站禁止复制页面内容和图片(如何做到内容不允许选择复制如果不希望网页内容被随意取用)
优采云 发布时间: 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»