如何阻止僵尸程序访问api。一种解决方案是记录IP地址和速率限制呼叫。另一种是使用Captcha。
但是,我正在寻找一种简单的黑客(聪明,天真的实现)来阻止自动查询。
Web应用程序是使用Ruby on Rails构建的。
编辑: 我的webapp执行一些计算并返回结果。访客是一般公众,他们只是零星地使用它。他们通过谷歌搜索结果找到我的应用程序。因此,他们不需要使用访问令牌来使用该网站。
答案 0 :(得分:1)
您可以使用像Rack Attack这样的gem来限制各种条件下的用户请求。例如,允许来自每秒相同ip的最大5请求:
# Throttle requests to 5 requests per second per ip
Rack::Attack.throttle('req/ip', :limit => 5, :period => 1.second) do |req|
# If the return value is truthy, the cache key for the return value
# is incremented and compared with the limit. In this case:
# "rack::attack:#{Time.now.to_i/1.second}:req/ip:#{req.ip}"
#
# If falsy, the cache key is neither incremented nor checked.
req.ip
end
答案 1 :(得分:0)