发生了非常奇怪的事情,我已经在codeigniter配置中启用了CSRF,但是使用burp套件可以绕开它。
我正在为表单使用函数form_open(),它已将隐藏字段正确添加到表单中。
使用打p套件,我捕获了数据包并删除了csrf cookie和发布值。
即使发送的标头中没有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");