例如,rack_attack gem提供了一个静态IP列表的简单安全列表:
# config/rack_attack.rb
ok_ips="1.1.1.1, 2.2.2.2, 3.3.3.3"
Rack::Attack.safelist('safelist these IPs') do |req|
ok_ips.include?(req.ip)
end但是,有没有办法在不需要服务器重新启动就生效的情况下动态更新安全is列表?
例如,如果已安全加载的IP位于密钥"OK_IPS“下的Memcache中,则在最后一次服务器重新启动时内存缓存中的任何IP都将被安全挂起,但任何新添加的IP在下一次服务器重新启动之前都不会被安全地挂起。
# config/rack_attack.rb
ok_ips = my_cache_read_method("OK_IPS") # "1.1.1.1, 2.2.2.2, 3.3.3.3 etc etc"
Rack::Attack.safelist('safelist these IPs') do |req|
ok_ips.include?(req.ip) # IPs added after server restart wont be included yet
end发布于 2021-04-15 20:59:02
显然,如果将方法移动到块中,则将根据请求对其进行评估:
Rack::Attack.safelist('safelist these IPs') do |req|
ok_ips = my_cache_read_method("OK_IPS") # "1.1.1.1, 2.2.2.2, 3.3.3.3 etc etc"
ok_ips.include?(req.ip) # IPs added after server restart wont be included yet
endhttps://stackoverflow.com/questions/67104378
复制相似问题