PHP Проблема с сеансом SameSite, сеанс не работает - PullRequest
1 голос
/ 10 февраля 2020

Я надеюсь, что кто-нибудь может дать мне несколько идей по моей проблеме. Я пытаюсь применить SameSite cook ie, чтобы сессия работала, но, похоже, она не работает. Посещаемый сайт html:

<iframe src="https://www.example.com/test/iframe.php"></iframe>

Исходный сайт Iframe:

    <?php
    header('Set-Cookie: cross-site-cookie=PHPSESSID; SameSite=None; Secure');
    session_start();
    if(!isset($_SESSION['test'])){
        echo 1;
        $_SESSION['test'] = 'ee2';
    }else{
        echo $_SESSION['test'];
    }

Если я захожу на сайт, я все равно получаю сообщение A cookie associated with a cross-site resource at https://www.example.com/ was set without the SameSite attribute. It has been blocked, as Chrome now only delivers cookies with cross-site requests if they are set with SameSite=None and Secure. в консоли браузера и сеанс не сохраняется ,

Странно то, что повар ie действительно установлен: enter image description here

Я что-то упустил? Почему я получаю это сообщение в консоли, если установлен параметр cross-site-cook ie и что может быть причиной того, что сессия не работает? Я использую php 7.1.33. Если я открываю iframe напрямую, он работает и работает правильно, если я открываю сайт в браузере, где я не включил флаг cookie SameSite по умолчанию для тестирования.

Ответы [ 3 ]

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

Я решил, отредактировав .htaccess

<ifmodule mod_headers.c>
Header always edit Set-Cookie ^(.*)$ $1;SameSite=None;Secure
</ifmodule> 
1 голос
/ 11 февраля 2020

Я временно решил проблему с помощью htaccess:

Header edit Set-Cookie ^(.*)$ $1;SameSite=None;Secure
0 голосов
/ 16 марта 2020

Я написал для этого класс.

https://github.com/ovunctukenmez/SameSiteSessionStarter

Он также проверяет, правильно ли браузер поддерживает параметр samesite.

Вместо session_start ();
Используйте вот так:

<?php
require_once 'SameSiteSessionStarter.php';

//start samesite none php session
SameSiteSessionStarter::session_start();
...