1

任何人都可以分享一些带有 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
4

0 回答 0