Codeigniter 和 Ckfinder csrf_exclude_uris

Codeigniter and Ckfinder csrf_exclude_uris

我在使用 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/.*+');

如有指点,将不胜感激

希望这能奏效。它对我有效。

$config['csrf_exclude_uris'] = array('assets/plugins/ckfinder/[\s\S]*');

但据我所知"assets" 资源不需要任何 csrf 保护。

URL提交表单数据

config.php 文件中添加以下行。这会起作用。

$config['**csrf_exclude_uris**'] = array(
        *'device/deviceProcess/pushData'*
);

-- deviceProcess : Controller

--- pushData : Method

----- URL : http://hostname/index.php/device/deviceProcess/pushData
# 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;
      }
    }
  }
}