Rack :: Attack测试案例:无法使用阻止列表更改ENV变量值

时间:2020-09-05 01:28:11

标签: rackattack

任何人都可以使用ENV变量共享某些阻止列表测试用例,我发现在spec文件中,我们无法在rails中间件中更改env变量。

如果我们在规格文件中设置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从safelist块中移出,它仍将为“ 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

0 个答案:

没有答案