嗨,我正在尝试使用CodeIngiter的CSRF机制。但问题是我不想将其用于每个网址/页面。我只想将其用于特定的网址/页面。
我有以下代码。我只希望对site_url('login')
和site_url('signup')
进行 CSRF 检查
但是CSRF发生在每一页上。如何使 CSRF 忽略其他 URL,只关注我上面指定的 2 个 URL?
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_checker';
$config['csrf_cookie_name'] = 'csrf_checker';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array('home', 'about', 'licenses');
选定的URI 可以从 csrf 保护中列入白名单(例如,需要外部发布内容的 API 端点(。您可以通过编辑"csrf_exclude_uris"配置参数来添加这些 URI:
$config['csrf_exclude_uris'] = array('api/person/add');
还支持正则表达式(不区分大小写(:
$config['csrf_exclude_uris'] = array(
'api/record/[0-9]+',
'api/title/[a-z]+'
);
编号 : https://www.codeigniter.com/user_guide/libraries/security.html?highlight=csrf#cross-site-request-forgery-csrf