Codeigniter 3 SameSite атрибут для защиты CSRF - PullRequest
1 голос
/ 11 марта 2020

У меня есть приложения, которые делают вызовы CORS друг другу. Google в апреле 2020 года понадобятся файлы cookie SameSite = нет. https://www.chromestatus.com/feature/5633521622188032

Начиная с chrome версии 80+ все пользователи, использующие браузер chrome, влияют на эту ошибку csrf. как исправить эту проблему на платформе Codeigniter, которая использует PHP 7.3

enter image description here

1 Ответ

1 голос
/ 11 марта 2020

Проблема решена

1.Добавьте этот конфиг в application / config / config. php для всего повара ie в рамках

ini_set('session.cookie_samesite', 'None');
ini_set('session.cookie_secure', TRUE);

2. Отредактируйте эту строку в system / core / Security. php строка ~ 273 заменена с

setcookie(
                        $this->_csrf_cookie_name,
                        $this->_csrf_hash,
                        $expire,
                        config_item('cookie_path'),
                        config_item('cookie_domain'),
                        $secure_cookie,
                        config_item('cookie_httponly')
                );

на

setcookie($this->_csrf_cookie_name, $this->_csrf_hash, ['samesite' => 'None', 'secure' => true,'expires' => $expire, 'path' => config_item('cookie_path'), 'domain' => config_item('cookie_domain'), 'httponly' => config_item('cookie_httponly')]);

для поддержки csrf атрибутом SameSite.

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