CSRF 预防
CSRF 代表跨站点请求伪造。你可以通过在 application / config / config.php 文件中启用选项来防止此攻击,如下所示。
$config['csrf_protection'] = TRUE;
使用 form_open()
函数创建表单时,它会自动在隐藏字段中插入 CSRF 令牌。你还可以使用 get_csrf_token_name()
和 get_csrf_hash()
函数手动添加 CSRF 令牌。正如他们的名字所暗示的,get_csrf_token_name()
函数将返回 CSRF 令牌的名称,而 get_csrf_hash()
将返回散列。
CSRF 令牌可以在每次提交时重新生成,也可以在 CSRF cookie 的整个生命周期内保持相同。设置配置选项’csrf_regenerate’将强制重新生成令牌,如下所示。
$config['csrf_regenerate'] = TRUE;
你可以使用密钥“csrf_exclude_uris”在配置数组中为它们设置匹配,从而将 CSRF 保护列入白名单,如下所示。你还可以使用正则表达式。
$config['csrf_exclude_uris'] = array('api/person/add');