《Disney +》 迪士尼、Marvel、彼思、星球大戰…  《Moving Out: Movers in Paradise》DLC將於2月25日推出   親眼見證尤菲的超爽快動作!搶先一窺《FINAL FANTASY VII REMAKE INTERGRADE》尤菲的新篇章!   日本2022年畢業生的「人氣就業企業排行」大公開!遊戲業界的第1名果然是…!   遊戲與聲音的完美組合! 華碩推出支援PS5的耳機麥克風和耳機!   USB高音質直播專用咪 「EPOS B20」使用評測   今年的「Day of Play」也將照常舉辦!這次不再只是特賣而已!   延伸遊玩優惠優惠進駐PlayStation Store   超人氣戰術FPS《VALORANT》手遊版確定推出! 

PHP Cookie SameSite 的設定方式

商業

Chrome 80 之後的版本,預設的 Cookie 設定將會無法跨站存取 Cookie 值,若想要允許 Cookie 跨網站存取的話(SameSite = None),需要使用 HTTPS 才可以。

  • 註:SameSite 用來阻止瀏覽器將 Cookies 跨網站發送 (prevents the browser from sending this cookie along with cross-site requests)

PHP Cookie SameSite 的設定方式

Chrome 80 之後的 Cookie SameSite 設定有三種(預設改為 Lax):

  • Strict
  • Lax (default)
  • None (需有 HTTPS 搭配,否則一樣等同 Lax)

Cookie SameSite 官方文件

Cookie SameSite 跨網域存取

  • SameSite=Strict:最嚴謹,只有與目前網頁網址一致才能發送 (remote.example、site.example 互相無法發送)
    • Set-Cookie: CookieName=CookieValue; SameSite=Strict;
  • SameSite=Lax:使用 GET remote.example 向 site.example 發送,Cookie 將會送向 remote.example (POST 則不會發送 Cookie)
    • Set-Cookie: CookieName=CookieValue; SameSite=Lax;
  • SameSite=None + HTTPS:允許跨網域存取,但是若沒 HTTPS 則預設「拒絕」跨網域存取
    • 無效:Set-Cookie: remote_session=abc123; SameSite=None
    • 有效:Set-Cookie: remote_session=abc123; SameSite=None; Secure

而 SameSite 的設定,於 PHP 7.2 以前尚未支援,所以 PHP 7.2 以前和 PHP 7.3 寫法不同:

PHP 7.2 以前的 SameStie Cookie 寫法

  • header('Set-Cookie: cross-site-cookie=name; SameSite=None; Secure');

PHP 7.3 以後的 SameStie Cookie 寫法

  • setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);

相關網頁

Tsung

隨機商業新聞

NordVPN