我正在使用codeigniter 3.1.9。
我已将csrg_regenerate
设置为true启用了CSRF保护。它工作正常,令牌每次在Post请求时都重新生成,验证也有效。最重要的是,我还将Cookie设置为仅在同一站点进行严格连接。
然后,我向安全团队提交了渗透测试评估,他们因为csrf攻击漏洞而拒绝了我的工作。
争论的是,他们更改了cookie令牌并发布了参数,然后进行了攻击。
以下是证明:
他们的响应:CSRF令牌未安全实施。攻击者仍然可以使用
csrf_cookie_name
Cookie和csrf_test_name
参数的任何值来进行CSRF攻击。
我该如何解决?
谢谢
答案 0 :(得分:0)
这是第一次在客户端看到存储在cookie中的安全令牌,这就是为什么您的系统容易受到攻击的原因。
您必须将令牌存储在会话中,以使其无法检索。
实现方式:
在表单中使用csrf令牌创建一个隐藏的输入,然后在表单提交时将其与会话中存储的令牌进行比较。