5

我在 Heroku 上有一个 Rails 应用程序,每秒大约有 10 个请求,这很奇怪,因为现在没有人使用该应用程序。例如,所有请求都是针对明显试图利用安全漏洞的 URI。

http://myapp.com/etc/passwd

诸如此类的事情。

如何阻止此人访问我的应用程序?有没有快速解决这个问题的方法?

4

2 回答 2

7

也许机架攻击会做你想做的事?

# Block requests from 1.2.3.4
Rack::Attack.blacklist('block 1.2.3.4') do |req|
  # Request are blocked if the return value is truthy
  '1.2.3.4' == req.ip
end
于 2013-05-06T15:32:43.017 回答
3

我的回复有点晚了,但既然你后来问过关于动态添加 IP 的问题,不妨分享一下。

从这个Github 问题。也许您可以使用缓存存储中 IP 的存在/存在来确定是否应该阻止它(与手动添加 IP 并重新部署应用程序相比)。

Rack::Attack.blacklist('block <ip>') do |req|
  # if variable `block <ip>` exists in cache store, then we'll block the request
  Rails.cache.fetch("block #{req.ip}").present?
end

从应用程序或控制台,您可以写入缓存存储。

Rails.cache.write('block 1.2.3.4', true, expires_in: 5.days)
于 2015-01-30T23:57:19.560 回答