任何人都可以分享一些带有 ENV 变量的阻止列表测试用例吗,我发现在规范文件中,我们无法更改 rails 中间件中的 env 变量。
如果我们在规范文件中设置环境变量。
stub_const('ENV', 'RACK_ATTACK_BLOCK_IP_LIST' => '1.1.1.1')
在 application.yml 文件中,有一个设置:
RACK_ATTACK_BLOCK_IP_LIST: '2.2.2.2'
如果我们运行测试用例并监控 rake_attack.rb 文件中的 env 值,我们只能在侧安全列表块中获取新的 env 变量值“1.1.1.1”,例如:
blocklist('block_ip_list') do |req|
block_ip_list = ENV['RACK_ATTACK_BLOCK_IP_LIST'].try(:split, /,\s*/) || []
block_ip_list.include?(req.ip)
end
如果我们将 safe_ip_list 移出安全列表块,它仍然是“2.2.2.2”
block_ip_list = ENV['RACK_ATTACK_BLOCK_IP_LIST'].try(:split, /,\s*/) || []
blocklist('block_ip_list') do |req|
block_ip_list.include?(req.ip)
end