防止被采集,有什么方案可以对网页显示的文字做一下加密?

2015-04-24 12:50:58 +08:00
 andybest
当然这无法根本杜绝被采集,只是稍微增加一下采集难度而已
不考虑搜索引擎收录
最简单的例如后台输出 unicode 代码,前台 js 再动态转换为实际的文字
各位有什么想法?
3399 次点击
所在节点    问与答
21 条回复
Daniel65536
2015-04-24 13:21:20 +08:00
比较彻底的一个组合是:
1. 利用ttx和脚本生成一个打乱了字符glyph与unicode对应关系的字体。
比如把 U+6211我 和 U+4F60你 替换,这样当输入“你”时,显示出来的字符是“我”,当输入“我”时,显示出来的字符是你。
内容是 “你我” 的文字用这种字体显示出来是“我你”
2. 用之前的随机替换码表加密你要显示的东西。
3. 用web font加载这个字体。

这样显示出来的内容和复制到的内容完全不相干,可以达到最佳的效果。采集者如果试图还原对应关系,只能手动录入这个对应关系。

这个做法比直接转图片优秀的地方在于这玩意对html/css/js透明,可以轻松用css完成响应式设计。
缺点么,每次要先下载个10多mb的字体算不算?

//有一种传统的pdf加密技术就是这么做的。
NewYear
2015-04-24 14:14:01 +08:00
百度知道的方法是,随机生成图片代替部分文字
andybest
2015-04-24 14:32:34 +08:00
@Daniel65536 谢谢,有没类似现成的程序?没有这么彻底的也可以,用于参考
zealic
2015-04-24 14:38:05 +08:00
WebGL
clino
2015-04-24 14:58:13 +08:00
"最简单的例如后台输出 unicode 代码,前台 js 再动态转换为实际的文字"
这个是木有问题的,做出来也不难,但是这种对搜索引擎不友好哈
EchoChan
2015-04-24 16:23:41 +08:00
@clino 那个360doc 怎么做到的?
dong3580
2015-04-24 16:34:41 +08:00
@clino
一点用都没有,有现成的框架可以直接得到想要的编码~~~并且这种方案对于搜索引擎也不好。

@andybest
加个302重定向,
<meta http-equiv="refresh" content="3;url=http://xxx">
可以稍微对付点小爬虫,要是真想爬你,那些小把戏没用的。不要做无谓的抵抗哈。
clino
2015-04-24 16:55:01 +08:00
@EchoChan 360doc做到什么?

@dong3580 我其实木有做过这种采集,但照理想还是有点用吧,应该用能跑javascript的采集方式才能拿到内容,木有内置浏览器的采集工具估计就会比较麻烦
当然要js部分写得很动态或者混淆过,如果太固定的话应该也很容易搞定哈

做这种采集一般都用什么工具阿?
EchoChan
2015-04-24 18:09:21 +08:00
@clino 360doc 里面的内容也不能复制,但是搜索引擎可以搜索到。
clino
2015-04-24 18:12:16 +08:00
@EchoChan 不能复制但是你用查看源代码是可以看到的,这种没办法防采集吧?
估计禁掉javascript就能复制了
FrankFang128
2015-04-24 18:23:42 +08:00
用 CSS content
processzzp
2015-04-24 18:46:02 +08:00
@EchoChan 我一般都是右键在Google中搜索选中的内容,然后直接复制搜索框。个人认为这么做意义不大,一下就能破解。
ooh
2015-04-24 18:54:36 +08:00
1.数据用ajax加载,数据请求带上验证
2.直接发图片
tabris17
2015-04-24 18:59:30 +08:00
用canvas输出文字
auzeonfung
2015-04-24 20:37:37 +08:00
FLASH渲染文字
Septembers
2015-04-24 20:41:58 +08:00
@Daniel65536 可以用HTML5 Application Cache解决字体每次加载的问题
Daniel65536
2015-04-24 21:32:08 +08:00
@andybest 我知道有基于这个实现的pdf加密软件,但是没有流传出来,只有加密后的pdf流传出来了。许久前网上就有关于如何破解这种加密的讨论,基本费力不讨好。

@Septembers 这种技术其实一般用在打包好的电子书、pdf、app里,如果放在网页上,除非网页特别有价值,否则还是比较反人类。因为面前有一半的浏览器在加载web font的时候block住加载进程。
haiyang416
2015-04-24 21:56:46 +08:00
见过用 table 分栏的,一段话分可能分别在不同 table 里,然后用 CSS 对齐,复制采集的文字都是乱序的,简直丧心病狂。
xenme
2015-04-24 23:56:42 +08:00
直接截图,然后OCR,比这些恢复步骤简单多了。
至少现在印刷体文字的识别率非常高了。
clino
2015-04-26 21:00:48 +08:00
@Daniel65536 把webfont 显示以后做ocr得对应关系以后再转我觉得比楼上直接 ocr更好

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

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

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

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

© 2021 V2EX