在接受或阻止来自客户端的请求之前,我试图通过检查origin和referer header 服务器端来增强我的CSRF防护。
请参阅owasp.org 上的this网站,应该阻止所有既不包含来源也不包含引用标头的请求:
当Origin和Referer Aren都出现时该怎么办
如果这些标头都不存在,这应该非常罕见,您可以接受或阻止该请求。我们建议阻止,(...)
但是......当我现在打开一个新标签并尝试第一次加载我的页面时,我的请求没有来源或引用标题,因此我的第一个请求被阻止。
问题:如何处理这些案件?或者我错过了什么?
注意:我使用CSRF-token-protection,这个问题只是关于标题检查。
答案 0 :(得分:2)
我不确定我是否正确理解您的问题,但是当您第一次加载页面时,应该没有状态更改请求。因此,应该允许该请求。
您的过滤器应首先检查请求是否是状态更改(放置,删除等),然后检查是否有适当的标头。