用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3884|回复: 3
收起左侧

[安全] 关于CSRF配置问题

[复制链接]
发表于 2012-7-17 21:30:41 | 显示全部楼层 |阅读模式
在用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
发表于 2012-7-17 23:55:40 | 显示全部楼层
ci 的类库都可以通过同名 config 文件来控制类库的属性,这个是一个 CI 的基本特性。
所以,你看到类库写死了,其实是可以用 Config 来修改的。
发表于 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;
                }
            }

代码里面已经将配置文件里面的值, 修改了默认的值

本版积分规则