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');