第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何告訴 PHP 將 SameSite=None 用于跨站點 cookie?

如何告訴 PHP 將 SameSite=None 用于跨站點 cookie?

PHP
慕娘9325324 2022-07-09 09:46:22
根據(jù)這里的文章https://php.watch/articles/PHP-Samesite-cookies和 PHP 文檔在https://www.php.net/manual/en/session.security.ini.php,只有 2在 PHP 7.3 中添加的此新功能的可能配置選項:session.cookie_samesite=松懈session.cookie_samesite=嚴格然而,根據(jù) Chrome 控制臺,這需要設置為“無”:設置了與 URL 處的跨站點資源關聯(lián)的 cookie,但未設置該SameSite屬性。SameSite=None它已被阻止,因為 Chrome 現(xiàn)在僅在使用和設置時才提供帶有跨站點請求的 cookie Secure。您可以在應用程序>存儲>Cookies 下的開發(fā)人員工具中查看 cookie,并在 URL 和 URL 中查看更多詳細信息。因此,我無法再設置跨站點 cookie。解決方法是什么?
查看完整描述

4 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

您可以使用 將值設置為“無” ini_set。使用該函數(shù)時,不檢查是否支持該值:

ini_set('session.cookie_samesite', 'None');
session_start();

session_set_cookie_params也可以設置:

session_set_cookie_params(['samesite' => 'None']);
session_start();

在 php.ini 中支持的錯誤報告在這里。


正如@shrimpwagon下面的評論中所說,session.cookie_secure必須讓它true起作用。PHP 不需要它,但瀏覽器需要它。


查看完整回答
反對 回復 2022-07-09
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

ini_set('session.cookie_secure', "1"); ini_set('session.cookie_httponly', "1"); ini_set('session.cookie_samesite','None'); session_start();

phpinfo 中的 php 7.4 相同站點

http://img1.sycdn.imooc.com//62c8de1b0001bac210070367.jpg

phpinfo 中不存在 php 7.2 samesite

http://img1.sycdn.imooc.com//62c8de280001520009920351.jpg

$currentCookieParams = session_get_cookie_params();

$cookie_domain= 'your domain';

if (PHP_VERSION_ID >= 70300) {

session_set_cookie_params([

    'lifetime' =>  $currentCookieParams["lifetime"],

    'path' => '/',

    'domain' => $cookie_domain,

    'secure' => "1",

    'httponly' => "1",

    'samesite' => 'None',

]);

} else {

session_set_cookie_params(

    $currentCookieParams["lifetime"],

    '/; samesite=None',

    $cookie_domain,

    "1",

    "1"

);

}

session_start();


查看完整回答
反對 回復 2022-07-09
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

壞的:

session.cookie_samesite=None

正確的:

session.cookie_samesite="None"

在這里解釋


查看完整回答
反對 回復 2022-07-09
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

如果使用 nginx,也可以使用 lua 修改 cookie。這有點 hacky,但我發(fā)現(xiàn)它適用于遺留網站:


    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    #

    location ~ \.php$ {

            include snippets/fastcgi-php.conf;


            fastcgi_pass unix:/run/php/php5.6-fpm.sock;


            # This is the relevant part:

            header_filter_by_lua '

                    local cookies = ngx.header.set_cookie

                    if cookies then

                            if type(cookies) ~= "table" then

                                    cookies = {cookies}

                            end

                            local gsub = string.gsub

                            local changed

                            for i, cookie in ipairs(cookies) do

                                    local new_cookie = gsub(cookie, "^PHPSESSION=(.*)", "PHPSESSION=%1; Samesite=strict", 1)

                                    if new_cookie ~= cookie then

                                            cookies[i] = new_cookie

                                            changed = true

                                    end

                            end

                            if changed then

                                    ngx.header.set_cookie = cookies

                            end

                    end

            ';

            # End Lua

    }

您可能需要調整正則表達式 (gsub),但我發(fā)現(xiàn)它運行良好。


查看完整回答
反對 回復 2022-07-09
  • 4 回答
  • 0 關注
  • 475 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號