0

我正在使用 codeigniter 3.1.9。

我已将 CSRF 保护csrg_regenerate设置为 true。它工作正常,每次发布请求时都会重新生成令牌,验证也有效。最重要的是,我还将我的 cookie 设置为仅同站点严格连接。

然后我向安全团队提交了渗透测试评估,他们因为 csrf 攻击漏洞拒绝了我的工作。

论据是,他们更改了 cookie 令牌并发布参数,然后执行攻击。

这是证明: 图片

他们的回应:CSRF 令牌没有安全地实施。csrf_cookie_name攻击者仍然可以使用Cookie 和csrf_test_name参数的任何值来执行 CSRF 攻击。

我该如何解决这个问题?

谢谢

4

1 回答 1

0

这是第一次在客户端看到存储在 cookie 中的安全令牌,这就是为什么您的系统当然容易受到攻击的原因。

您必须将令牌存储在会话中,使其无法检索。

实现方式:

使用 csrf 令牌在您的表单中创建一个隐藏输入,并在表单提交时将其与存储在会话中的令牌进行比较。

于 2018-11-29T07:41:28.670 回答