Как использовать CSRF только для определенных URL / страниц в PHP CodeIgniter - PullRequest
0 голосов
/ 21 октября 2018

Привет, я пытаюсь использовать механизм CSRF CodeIngiter.Но дело в том, что я не хочу использовать его для каждой ссылки / страницы.Я хочу использовать его только для определенного URL / страницы.

У меня есть следующий код.Я хочу, чтобы проверка CSRF выполнялась только на site_url('login') и site_url('signup')

Но CSRF происходит на каждой странице.Как я могу заставить CSRF игнорировать другие URL-адреса и сосредоточиться только на тех 2, которые я указал выше?

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

1 Ответ

0 голосов
/ 22 октября 2018

Выбранные URI могут быть внесены в белый список из защиты csrf (например, конечные точки API, ожидающие внешнего POST-содержимого).Вы можете добавить эти URI, отредактировав параметр конфигурации 'csrf_exclude_uris':

$config['csrf_exclude_uris'] = array('api/person/add');

Также поддерживаются регулярные выражения (без учета регистра):

$config['csrf_exclude_uris'] = array(
        'api/record/[0-9]+',
        'api/title/[a-z]+'
);

ref: https://www.codeigniter.com/user_guide/libraries/security.html?highlight=csrf#cross-site-request-forgery-csrf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...