主机头漏洞web2py

时间:2016-02-26 16:45:55

标签: security http web2py hostheaders

忘记密码和用户验证码有主机标头漏洞。

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

他们是更好的出路吗?

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

2 个答案:

答案 0 :(得分:1)

好吧,正如问题所述,>>> 'hi\xFF'.encode('utf-8') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 2: ordinal not in range(128) 标头应由服务器而不是请求对象设置。

在这种情况下,您可以拥有一个虚拟主机(vhost),它将捕获使用无法识别的主机名的任何请求。实施方式因网络服务器而异,但您可以在NginxApache上查看有关如何处理此问题的链接。

有关主机标头攻击的更多信息,请访问here

答案 1 :(得分:0)

我认为问题解决方案是一种多重安全方法。

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

虽然在线匿名域主机标头可能不会对https场景中的应用程序造成任何威胁。

但忘记密码电子邮件重置请求等脱机请求确实存在很大威胁。因为恶意攻击者可以请求忘记密码电子邮件重置匿名域主机头。然后,如果实际用户单击密码重置链接。邪恶的攻击者将获得重置代码。

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