PageGuard.js 防复制 + 检测开发者工具

2018-05-04 18:39:13 +08:00
 131

防复制就不多说了,整合了一下 JS 和 CSS 防复制的方法,应该还是比较全的

检测开发者工具的话,整合了各种较新的方法,经测试是支持 Chrome (包括单独窗口打开的情况)和 Firefox (在单独窗口打开时,只有打开控制台时才能检测到),其他浏览器还没有测试,不过估计 chromium 内核的浏览器也都是支持的

最后放个链接求 star: https://github.com/Netrvin/PageGuard.js

8674 次点击
所在节点    JavaScript
80 条回复
131
2018-05-05 11:18:44 +08:00
@xqin 2333,毕竟不是用来防程序猿的(也很难防住嘛)
mlhorizon
2018-05-05 11:25:59 +08:00

Tampermonkey 脚本打个勾就破了,楼主继续加油。
131
2018-05-05 12:08:41 +08:00
@mlhorizon 多谢反馈,我试试能不能检测出被破解
131
2018-05-05 12:59:45 +08:00
@mlhorizon 我这里测试无法复现,请再试一下;有可能是因为 10 秒钟到了之后,网页自动解除的限制,这是为了展示解除限制的功能
nosay
2018-05-05 14:21:06 +08:00
突然想起年少时,追书时候的那些手打天团...

所以,只要你敢公开,只要有价值,哪怕非程序员,也会通过简单粗暴的方式拿到他想要的,23333
131
2018-05-05 14:42:51 +08:00
@nosay 2333,感谢他们为文学事业做出的“贡献”(
Mysdes
2018-05-05 15:13:06 +08:00
Chrome 上的 Allow Copy 插件

AX5N
2018-05-05 15:28:11 +08:00
这么做有什么意义吗?复制不来的都是普通人,如果连普通人都利用不了你网站的东西,你网站还存在什么价值吗?
icy37785
2018-05-05 15:33:37 +08:00
@AX5N #48 有意义呀,这个轮子很多场景下面是很有用的(至少在我部分项目下有用)。每个轮子都是针对特定场景下有用的。
qsnow6
2018-05-05 15:46:23 +08:00
都是码农,何必伤害呢
AX5N
2018-05-05 15:48:53 +08:00
@icy37785 那你就直接说下哪些场景很有用,我就想不出来限制普通人复制到底有什么意义。
icy37785
2018-05-05 16:02:52 +08:00
@AX5N #51 你这话题我肯定不接的,上面也是也是出于这种考虑所以我只说某些场景下面有用,如果我明确跟你说明哪些场景有用,你会跟我说用 xx 工具,xx 方法一样可以,然后我需要跟你解释 xx 工具盒 xx 方法为什么在这个场景下不适用,然后很有可能针对到底 xx 方法 xx 工具适不适用成为一个没有结局的对话,但是对于适不适用这个问题,不接触特定场景是理解不了的,所以这对话必然没结果,必然没结果的话题当然是不去开始比较好。这些轮子本来就是对于接触一些场景的人来说是有用的,对于不涉及特定场景的人来说没用的,我至少跟你说对部分人有用比如我的部分项目,既然对部分人有用那么就是有意义了。不知道我这样说你能不能认同。
131
2018-05-05 16:05:13 +08:00
@AX5N 网站的内容并不只有被复制这一个用途,比如在线答题,就需要限制考生对网页进行复制
131
2018-05-05 16:05:39 +08:00
@Mysdes 多谢反馈
PP
2018-05-05 16:10:15 +08:00
“许看不许摸”,这是自主权。支持楼主的想法,欢迎楼主的作品!
UIXX
2018-05-05 16:18:23 +08:00
...这个工具属于“不够有用”,它意味着该效果在应用场景上
1、可以在常规用户上奏效
2、不可以在目标用户上奏效
3、常规用户跟目标用户并不高度重合
举个例子,在线答题,对于一般的考生他认认真真答题,发现不能复制那没什么。这个属于常规用户使用。如果一个考生铁了心要上网查答案,那你这个工具破解的成本太低了。而恰恰后一种用户才是我们开发这个工具所要防范的群体。
131
2018-05-05 16:27:01 +08:00
@UIXX 嗯,确实,考生完全可以打字、语音、截屏查,还可以直接问人;所以大型正规考试基本上都是线下的(但还可能带个蓝牙耳机或者口袋里放个手机)
131
2018-05-05 16:29:48 +08:00
@UIXX 所以可能应用在不希望被复制的,文字多的场景更好,这样子再换个字体之类的,如果你真的有毅力手打。。。那也没辙
codehz
2018-05-05 16:32:07 +08:00
没考虑可访问性 api 直接读取网页文字的问题,建议干掉所有文字改用图片渲染
131
2018-05-05 16:53:41 +08:00
@codehz 对,innerText 直接就能读,不过这个 JS 里弄图片渲染还要考虑各种普适性之类的问题,所以。。。就没考虑用这个方法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/452199

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX