【发布时间】:2018-11-27 06:10:21
【问题描述】:
我在 AWS 环境中有一个 Sinatra 服务器,客户端和服务器之间有一个负载均衡器。
除非我这样做:
disable: protection
它在重定向时给出“禁止”。我不想总是禁用保护,我应该缩小禁用保护的数量,所以我想知道是什么保护禁止我的重定向。
我希望看到类似的东西:
attack prevented by Rack::Protection::<Something>
我有:
enable: logging
和:
-e development
但无法从Rack::Protection 获得任何关于它为何应用规则的反馈。
我试过这个:
def self.log_rack_protection(namespace = nil, data = nil)
puts "rack data: #{data.pretty_inspect}"
end
use Rack::Protection, instrumenter: log_rack_protection
但它似乎除了在启动时不会被调用。
我需要做什么才能从Rack::Protection 获得更多关于哪个模块正在阻塞的反馈?或者,我们应该对负载均衡器应用一些配置来停止这种保护吗?
【问题讨论】:
-
sidekiq 基于 Sinatra 的 Web UI 也存在类似问题。请查看this thread 是否对您有帮助。基本上,只需确保您将适当的标头从反向代理(负载平衡器)传递到机架。
-
谢谢@31piy。基于该阅读和一些禁用“remote_referrer”保护的实验就可以了。在西纳特拉:
set :protection, :except => [:remote_referrer] -
很高兴您自己找到了解决此问题的方法。为了帮助将来遇到类似问题的读者,您应该添加一个描述您做了什么的答案,然后接受它。
-
其实好像是
set :protection, :except => [:json_csrf]