我遇到Codeigniter 3和CKfinder的问题,关注CSRF保护
如果我在我的Codeigniter配置文件中使用以下内容,CKFinder图像上传工作正常
$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();
如果我更改$ config [' csrf_protection'] = TRUE; CKFinder图像上传失败
我需要的是能够将CKFinder排除在CSFR保护之外 - 我已尝试过以下但似乎没有任何作用:
$config['csrf_exclude_uris'] = array('assets/plugins/ckfinder/.*+', 'assets/plugins/ckfinder/ckfinder.js', 'assets/plugins/ckfinder', 'admin/news/.*+');
任何指针都将不胜感激
答案 0 :(得分:1)
# Its work fine #
$config['csrf_protection'] = TRUE;
if(isset($_SERVER["PHP_SELF"])){
$parts = explode("/",$_SERVER["PHP_SELF"]);
$exclude_url_arr = array('login');
if (!empty($exclude_url_arr[0])) {
foreach($parts as $part) {
if (in_array($part,$exclude_url_arr)) {
$config['csrf_protection'] = FALSE;
break;
}
}
}
}
答案 1 :(得分:0)
希望这可行。它适用于我的情况。
$config['csrf_exclude_uris'] = array('assets/plugins/ckfinder/[\s\S]*');
但据我所知,“资产”资源不需要任何csrf保护。
答案 2 :(得分:0)
提交表单数据的网址。
在config.php
文件中添加以下行。这将有效。
$config['**csrf_exclude_uris**'] = array(
*'device/deviceProcess/pushData'*
);
-- deviceProcess : Controller
--- pushData : Method
----- URL : http://hostname/index.php/device/deviceProcess/pushData