-1

忘记密码和用户验证码存在主机头漏洞。

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

他们是更好的出路吗?

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

4

2 回答 2

1

好吧,正如问题中提到的,Host标头应该由服务器而不是请求对象设置。

在这种情况下,您可以拥有一个虚拟主机 (vhost),它将捕获任何使用无法识别的主机名的请求。实现因 Web 服务器而异,但是您可以查看有关如何在NginxApache上执行此操作的链接。

可以在此处找到有关主机头攻击的更多信息。

于 2016-02-26T21:56:00.660 回答
0

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

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

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

但是像忘记密码电子邮件重置请求这样的离线请求确实构成了很大的威胁。因为邪恶的攻击者可以通过匿名域名主机头请求忘记密码电子邮件重置。然后,如果实际用户单击密码重置链接。邪恶的攻击者将获得重置代码。

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

于 2016-03-03T04:48:57.067 回答