我正在为我的应用程序添加CSRF预防机制。我查看过很多帖子,但我的方法仍然存在不确定性。 我将使用同步令牌实现,同时我想使用它来防止双重提交,后退按钮和刷新。所以我需要为每个请求添加一个新令牌。 目前在我的应用程序中,有常规表单提交,URL GET和AJAX请求。实际上有一些新窗口弹出窗口,但我正在尝试消除/重写这些功能。 以下是我计划要做的事情以及一些不确定因素。
以下是一些初步假设:
我的流量和怀疑:
我的方法是否有“自足”问题?
由于
答案 0 :(得分:0)
1& 2:只有在CSRF令牌通过网络传输时的安全性才是 HTTPS VS HTTP 。如果它只是http某人可以拦截通信和你的CSRF令牌。
除此之外,其传输的数据相同。如果它在标题中或JSON或HTML内部没有区别。只需确保令牌通过HTTPS进行通信。 With HTTPS, even the headers are encrypted。
如果它是没有SSL的HTTP,无论如何,无论是在标题中还是在HTML中,中间人攻击都会找到它。
3。 AJAX处理CSRF令牌并不是一个好主意。 An attacker can use the ajax call as an attack vector。 相反,如果您真的不希望攻击者进入CSRF等信用卡交易,那么最好是让用户再次登录。