以指数方式延迟对php中同一文件的重复请求


Exponentially delay repeat requests to the same file in php

我想防止机器人爬上我们的网站并下载那里托管的数千张图片。

我最近读到这篇文章https://github.com/remy/password-policy关于密码策略的最佳实践。其中一个想法是通过不限制人类而是惩罚机器人来成倍地延迟重复请求

这在php中可能吗?

最简单的方法是将相关URL重写到PHP脚本中,从而实现下载。这将

  • 保存源地址的列表(例如,在memcached中)及其最后的时间戳和惩罚时间
  • 根据时间戳加倍或零惩罚时间
  • 把记录写回
  • 最后睡觉下载