代码之家  ›  专栏  ›  技术社区  ›  Steve Ward

Webforms CSRF预防不起作用

  •  0
  • Steve Ward  · 技术社区  · 7 年前

    使用Webforms 4.5和下面链接中的代码来防止CSRF攻击。我们不使用母版页,所以相同的代码包含在Sitecore基本布局中。

    https://software-security.sans.org/developer-how-to/developer-guide-csrf

    这似乎无法阻止CSRF攻击,因为我们在站点之外有一个脚本,它能够将经过处理的数据发布到站点。我们已将视图状态(从网页复制)添加到此脚本。

    然而,由于我们的脚本包含视图状态,它包含视图状态变量,因此该代码不会产生错误,因为视图状态变量与内存中的变量匹配。

    我希望这段代码能够作为web表单母版页的一部分工作……你知道为什么它对我们不起作用吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   John Wu    7 年前

    CSRF攻击是一种只写攻击。例如

    1. 黑客发送了一百万封电子邮件,其中包含一个“图像”,实际上链接到 https://www.SomeBank.com/Transfer?Amount=1000&ToAccount=HackersAccount

    2. 在一百万封电子邮件中,有一部分被打开了

    3. www.Somebank.com

    4. 当图像被“检索”时,电子邮件客户端实际上会向银行网站发送请求并移动资金。请求成功,因为的Cookie www.SomeBank.com 与请求一起被动发送。

    如你所见,如果黑客能够访问该页面并读取令牌,那么该机制就无法工作。当然,如果他可以访问该页面,你会遇到更大的问题!