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

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

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

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

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

8822 次点击
所在节点    JavaScript
80 条回复
131
2018-05-04 21:11:02 +08:00
@geelaw 嗯,这个方法确实是有不少限制和弊端,只是没啥更好的方法,有空我加一下判断 agent
afpro
2018-05-04 21:13:01 +08:00
防复制还是有意义的 防开发者工具就很鸡肋了 这类玩意一般都是做成油猴之类的给 PM 和运营做 量大就 headless chrome 不会有程序猿自己开开发者工具复制你的内容的
opengps
2018-05-04 21:24:02 +08:00
先打开 f12,然后输入网址
131
2018-05-04 22:03:42 +08:00
@opengps 无效的,它不是防止你打开开发者工具,而是判断
131
2018-05-04 22:05:12 +08:00
@afpro 嘛,主要是之前网上查到的“防复制教程”里面有利用 console 的,所以就处理了一下
ledzep2
2018-05-04 22:56:44 +08:00
既然是开发者, 这点小障碍肯定是越得过的拉
131
2018-05-04 23:03:57 +08:00
@ledzep2 嗯,毕竟都是人才,但大部分其他的人还是不会的
letitbesqzr
2018-05-04 23:30:13 +08:00
最近我们这面也有个需求,要收集一下具体哪些用户在我们的网页打开过控制台。

我们的做法是利用 sourceMapping,在网站上引入一个通过程序生成的 js,最后加上 souceMapping 的路径,路径和当前登录的用户有关联,监听这个地址,就能够知道是谁打开了。我测试过,只要一打开 chrome 控制台就会去加载 sourceMapping。虽然这东西在控制台里面可以禁止,但是默认都是开启的。没有必要去防御,毕竟都是丢给用户的游览器上执行的了,几乎没有什么是扰不过的。
chinvo
2018-05-04 23:39:17 +08:00
学 ReCAPTCHA 搞个 bytecode vm

WebSockets + WebRTC 下发 bytecode 并且检查中间人攻击的可能性

执行 bytecode 得到客户端解密逻辑和密钥
chinvo
2018-05-04 23:40:38 +08:00
刚刚不小心按了 command + enter orz

WebSockets 下发分段密文和 IV

用 bytecode 里面的逻辑解密

bytecode 渲染内容到 canvas

完美 👍
131
2018-05-05 00:02:42 +08:00
@letitbesqzr 感想提供思路
131
2018-05-05 00:06:25 +08:00
@chinvo 666
misaka19000
2018-05-05 00:21:45 +08:00
131
2018-05-05 00:24:38 +08:00
@misaka19000 这只是一个测试界面,用于演示防复制和检测开发者工具的功能

在生产环境中,建议让页面动态生成以在一定程度上防止分析源码
azh7138m
2018-05-05 01:03:57 +08:00
移动端有阅读模式,chrome+Firefox 都有
binux
2018-05-05 01:12:23 +08:00
挺好的,我有一个 headless 浏览器,https://github.com/sindresorhus/devtools-detect 检测不到,你的可以
131
2018-05-05 01:14:23 +08:00
@binux 谢谢支持
131
2018-05-05 01:16:48 +08:00
@azh7138m 那个测试页面比较单调(简陋),所以阅读模式能够较好的工作。正常的页面有一大堆其它的文本和样式,所以阅读模式的效果是没那么好的(而且可以人工插一堆看不见的字符来混淆之类的)
noe132
2018-05-05 02:30:29 +08:00
防复制我只服那个动态生成随机字体的
xqin
2018-05-05 10:51:22 +08:00
用 fiddler 把加载的这个 js 指向 404, 万事大吉.

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

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

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

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

© 2021 V2EX