首页 > 解决方案 > Codeigniter CSRF 问题

问题描述

发生了一些非常奇怪的事情,我在 codeigniter 配置中启用了 CSRF,但是使用 burp 套件可以绕过它。

我正在为我的表单使用函数 form_open() 并将隐藏字段正确添加到表单中。

使用 burp 套件我捕获数据包并删除 csrf cookie 和 post 值。

即使 csrf 详细信息不在发送的标头中,服务器仍会处理更新。

我附上了一张图片。

提前感谢伊恩

标题示例

https://i.stack.imgur.com/sqUTj.png

** 更新 **

`$config['csrf_protection'] = TRUE; 
$config['csrf_token_name'] = 'csrftoken'; 
$config['csrf_cookie_name'] = 'csrfcname'; 
$config['csrf_expire'] = 7200; 
$config['csrf_regenerate'] = TRUE; 
$config['csrf_exclude_uris'] = array('account/ajax_log_custom_doc_download');`

** 已修复 ** 我发现了问题,那就是 $this->csrf_show_error(); 实际上并没有处理 403 标头,因此它让 csrf 攻击通过。

解决方法是添加您自己的标头代码并删除脚本,最好扩展安全类然后添加此代码。

http_response_code(403);
die("Forbidden");

标签: phpcodeignitersecurity

解决方案


推荐阅读