目前工作暂时不需要处理反爬虫需求,以前曾经有过,估计以后也会有,反爬是互联网一个永久的话题,以下纯属白日瞎想,与 v 友讨论一下:
昨天想到关于 cloudflare 的五秒盾,印象里听别人说过他是通过一个复杂计算,让前端证明确实跑了这么多计算,所以理论上没有任何人可以绕过这部分工作。如果我们平常也在自己的应用里植入一个类似的,但除了初次打开页面需要等待以外,其他的时候可以让网页在用户浏览网页时后台计算,这样正常用户使用的话,人类很少有打开一个页面只看五秒的情况,五秒过后浏览器已经准备好了结果可以直接打开下一个页面,可以做到用户端无感知。对于爬虫来说则可以限制其爬虫效率不得超过其计算效率的最大值,应该对于灰产来说还是一件稍麻烦的事情,对于数据频繁更新的应用限制效率后爬虫获取数据的价值也会降低很多。
理论上进行的计算最好是非对称式的,比如前端要算个几秒钟,但后端验算只需要一瞬间的那种,后端无需支付代价即可限制爬虫的效率。关于计算内容可以即时从后端申请,防止用户端预计算。这种改装应该对于后端来说很轻松。但关于计算内容以我粗浅的数学知识实在是想不到什么好主意,理论上这个东西要难于计算,但易于验算,最好还可以方便地调整问题复杂度。。。百度搜了搜非对称计算,结果搜到的无一例外全是 RSA 相关的内容,但 RSA 使用的算法我想了想似乎对于本命题并无太大借鉴意义。其他能想到的比较难算但易于验算的任务,比如找大质数之类的,问题在于虽然大质数找起来很费劲,但验算起来开销同样很高。。而且不是很方便控制计算复杂度,比如网站有时候需要 5 秒计算,被攻击时可能需要 10 秒,其他时候可能需要 2 秒,这就很难调整了。。
v 友们又和想法?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.