如果samesite =严格限制身份验证Cookie,禁用防伪令牌是否安全?

时间:2019-10-08 16:18:33

标签: asp.net-core asp.net-core-identity samesite

根据docs.microsoft.com,ASP.NET内核实现了同步器令牌模式以减轻CSRF。

反请求伪造机制有许多影响用户的缺点:

ex 1:在2个标签中打开的登录页面

  • 在两个不同的选项卡中打开登录页面
  • 用户A来自选项卡1的日志(无问题)
  • 用户B在不刷新选项卡2的情况下尝试登录。

=>产生一个400页的AntiforgeryValidationException

reference 1reference 2

ex 2:在2个标签中打开的表单(通过邮件中的同一链接)

  • 从模板(VS 2019)创建一个新的Asp.Net Core MVC网站
  • 创建一个新页面,该页面具有一个简单的表单,该表单在发布时已通过[ValidateAntiForgeryToken]进行了验证。
  • 通过电子邮件向您发送指向该页面的链接(我已经使用过Gmail和Mailtrap)
  • 通过正常单击在两个选项卡中打开链接
  • 以任意顺序提交两种表格

=>首先打开的表单会产生400错误

reference

SameSite = strict似乎是一种针对CSRF攻击的有效安全措施

根据此articlethis draft RFC,SameSite cookie似乎是一种针对CSRF攻击的有效而强大的安全措施。 使用SameSite = strict配置ASP.NET Core 2.2的身份验证cookie。如果我的理解是正确的,那么身份验证cookie仅在相同站点导航的情况下才发送到服务器。

因此,如果可以保证我的用户使用的是支持SameSite策略的浏览器,是否可以安全地禁用ASP.NET Core应用程序的反CSRF机制?

0 个答案:

没有答案