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,把问题难度加大,让计算的时间 变长

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

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

比如:工商信息查询网站

推荐文章