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()
.