我知道我们不能使用非本地主机的better_errors。
如果我们想在docker环境中使用Better_errors,可以使用BetterErrors::Middleware.allow_ip! '0.0.0.0/0'
。
但是它有安全风险。如果恶意用户访问同一网络上的主机,并且Rails应用程序偶然引起错误,则他可以执行Rails应用程序可以做的任何事情(例如:窃取所有源代码)。
有什么应对安全风险的想法吗?
答案 0 :(得分:0)
2件事:
# Private subnets defined by RFC1918 as stated in https://docs.docker.com/v1.5/articles/networking/
BetterErrors::Middleware.allow_ip! '10.0.0.0/8'
BetterErrors::Middleware.allow_ip! '172.24.0.1/12'
BetterErrors::Middleware.allow_ip! '172.16.0.0/12'
BetterErrors::Middleware.allow_ip! '192.168.0.0/16'
应该限制可以访问机器本身的IP数量。
答案 1 :(得分:-1)
我在BetterErrors回购中找到了以下解决方案: https://github.com/BetterErrors/better_errors/issues/270#issuecomment-236236791
简而言之:
config/environments/development.rb
BetterErrors::Middleware.allow_ip! "0.0.0.0/0"
如果仍然遇到问题,请尝试使用rails s -p 3000 -b'0.0.0.0'
启动服务器。我在带有Docker Machine的Mac上使用它。