在https://www.drupal.org/node/1803712上,我正在探索HTTP源检查作为Drupal的CSRF保护的想法
现在,我正在测试Origin header如何通过POST请求到达,但是Firefox不会在用户登录表单提交时发送Origin header。Chrome和Chrome工作得很好,它们发送Origin头。
Firefox版本为36.0.1。我还测试了一个干净的Firefox安装,因为我认为我的一些浏览器插件可能会抑制Origin头,但没有运气-那里也没有Origin头。
有没有文档页面描述Firefox何时发送Origin头以及何时没有?
发布于 2016-02-09 19:18:12
还没有实现。这里有一个讨论:https://bugzilla.mozilla.org/show_bug.cgi?id=446344
发布于 2018-04-26 03:40:07
火狐的默认设置是不发送HTTP_ORIGIN。
原因是,如果启用了network.http.sendOriginHeader配置变量(可通过about:config访问),则会导致某些移动Firefox版本挂起。(有关详细信息,请参阅https://developer.mozilla.org/en-US/Firefox/Experimental_features#Security和Marco的comment https://bugzilla.mozilla.org/show_bug.cgi?id=446344提供的链接。)
有建议默认启用FF发送HTTP_ORIGIN,但待办事项列表很长(参见https://bugzilla.mozilla.org/show_bug.cgi?id=1424076)。因此,即使没有支持HTTP_ORIGIN的Javascript代码,FF也可能需要数年时间才能发送CSRF。
一些FOSS OSes默认情况下将其FF端口预配置为发送HTTP_ORIGIN。顺便说一句,如果不使用Javascript显式启用HTTP_ORIGIN,MS Edge也不会发送CSRF。
出于这个原因,我为我的站点实现了一个安全设置,它允许用户禁止来自不提供HTTP_ORIGIN的浏览器的POST事务。
https://stackoverflow.com/questions/29034776
复制相似问题