сеанс приготовления ie set SameSite = Нет; Безопасный; - PullRequest
1 голос
/ 01 февраля 2020

сервер работает PHP Версия 5.4.45 Google Chrome ограничит межсайтовое отслеживание по умолчанию, начиная с 4 февраля 2020 года. Это вызовет проблемы для приложения для закупок, которое подключается к нашему веб-сайту через iframe

Мне нужно установить сессионный повар ie с SameSite = None; Безопасный;

Любые предложения будут с благодарностью

Спасибо

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

SameSite доступно из php версии >= 7.3, в php .ini и в session_set_cookie_params () , если используется в форма session_set_cookie_params(array $options): bool

О php версия < 7.3 ... Честно говоря, я не знаю, будет ли использование header() переопределять параметры, установленные session_start() , возможно, возможно, я попытаюсь обновить ответ.

Я провел простой тест с php:5.6-cli (docker image, я думаю, что это было 5.6.40), и, кажется, работает как и ожидалось:

session_start();
header('Set-Cookie: ' . session_name() . '=' . session_id() . '; SameSite=None; Secure');

По умолчанию эта версия php устанавливает сессионный повар ie только с key=value; path=/, при использовании header() перезаписывается, только один повар ie отправляется в ответ, и только с SameSite=none; Secure (проверено в файлах cookie Chromium и пакетах wireshark)

Однако я бы порекомендовал провести тестирование с версией php, которую вы используете, поведение может измениться.

Лично я имею в виду не использовать session_start(), хранить сеансы в БД и использовать обычные файлы cookie, установленные с header().

0 голосов
/ 06 февраля 2020

Для таких версий PHP с истекшим сроком эксплуатации, прежде всего, вы должны выполнить обновление, поскольку вы уже подвергаетесь ряду известных уязвимостей безопасности.

Однако для исправления этого вам потребуется обновить места, где вы можете использовать setcookie(), чтобы вручную установить заголовок, например,

header('Set-Cookie: cross-site-cookie=bar; SameSite=None; Secure');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...