xuyao5 发表于 2012-7-17 21:30:41

关于CSRF配置问题

在用CI开发系统,在配置文件里面打开了CSRF:
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;

但是在调试中发现,无论如何设置下列两个参数,如:
$config['csrf_token_name'] = 'abc';
$config['csrf_cookie_name'] = 'def';
这两个配置项没有起作用,在Security.php文件里面,已经写死了cookie名和token名:
    protected $_csrf_token_name      = 'ci_csrf_token';
    protected $_csrf_cookie_name    = 'ci_csrf_token';

能否请教一下各位大神,是否这两个参数已经无用了?谢谢

暗夜星辰 发表于 2012-7-17 22:26:37

在 表单辅助函数处会用到
当你开启CSRF后会自动生成以'csrf_token_name'为ID的token

Hex 发表于 2012-7-17 23:55:40

ci 的类库都可以通过同名 config 文件来控制类库的属性,这个是一个 CI 的基本特性。
所以,你看到类库写死了,其实是可以用 Config 来修改的。

y01101414 发表于 2013-8-27 15:30:56

            foreach(array('csrf_expire', 'csrf_token_name', 'csrf_cookie_name') as $key)
            {
                if (FALSE !== ($val = config_item($key)))
                {
                  $this->{'_'.$key} = $val;
                }
            }

代码里面已经将配置文件里面的值, 修改了默认的值
页: [1]
查看完整版本: 关于CSRF配置问题