主机头漏洞 web2py

Host header vulnerability web2py

忘记密码,用户验证码存在host header漏洞

攻击者可以从包括他自己域的服务器生成用户验证和密码重置请求。

他们是更好的出路吗??

https://github.com/web2py/web2py/issues/1196

嗯,如问题中所述,Host header 应该由服务器设置而不是请求 object。

在这种情况下,您可以拥有一个虚拟主机 (vhost),它会捕获任何使用无法识别的主机名的请求。实施因 Web 服务器而异,但您可以在 Nginx and Apache.

上查看有关如何执行此操作的链接

可以找到有关主机 header 攻击的更多信息 here

我将问题解决方案视为一种多线程安全方法。

Apache 充当看门人。如果配置正确,可以限制路由到应用程序的匿名主机 headers。 (仍然不确定缓存注入)

虽然在线匿名域名主机headers可能不会对https场景下的应用构成任何威胁

但像忘记密码电子邮件重置请求这样的离线请求确实具有很大的威胁。因为恶意攻击者可以通过匿名域名主机 headers 请求忘记密码电子邮件重置。那么如果实际用户点击密码重置link。恶意攻击者将获得重置密码。

现在这里的应用程序依赖 Apache 路由的主机 headers 来创建离线响应。这不应该发生(apache 应该对在线流量负责)。因此应用程序应该有自己的域名配置和创建离线响应的机制。