8

POW与反爬虫

 3 years ago
source link: https://igaojin.me/2020/04/27/POW%E4%B8%8E%E5%8F%8D%E7%88%AC%E8%99%AB/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

POW与反爬虫

POW解释

工作量证明(Proof-of-Work,PoW)是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。一般是要求使用者进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。此一概念最早由Cynthia Dwork和Moni Naor于1993年的学术论文提出,而工作量证明一词则是在1999年由Markus Jakobsson与Ari Juels所发表。现时此一技术成为了加密货币的主流共识机制之一,如比特币所采用的技术

大家应该都听过POW反垃圾邮件的故事

大概意思是:在写信的时候,把收件人+邮件内容+发件人 做一个计算…

比如 要上面的内容与 算出来的某个数 出来的hash 前3位都是0

在发送邮件的时候 把这个数带上去,服务器要验证这个数是否经过计算…

通过算法把 计算这个数的时间控制在某个时间内,假设为5秒钟

对于普通用户来说…5秒的时间是可以接受的,但是对于制造垃圾邮件的人来说,这个时间就很难承受了

所谓反爬虫和上面的邮件反垃圾是同理的

通过让用户先在前端做某个计算,提交答案后再返回api的内容

每次请求api的时候 都需要带上工作证明(工作证明需要花费时间)

这样就限制了他的请求速率,达到了反爬虫的效果

当然还可以动态控制问题难度…

比如1小时访问次数超过1000次的ip,把问题难度加大,让计算的时间 变长

当然这个不能放在一些用户体验要求特别高的地方

需要放在一些用户低频使用,不怎么在乎用户体验的位置

比如:工商信息查询网站

本文作者:高金
本文地址https://igaojin.me/2020/04/27/POW与反爬虫/
版权声明:转载请注明出处!

Gitalking ...

分享

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK