2016-09-28 123 views
8

我最近閱讀屬性「相同網站」上的「RFC 6265」,我看了一些文章,談到2016年4月,「同一網站」屬性已實施Chrome 51和Opera 39 ...PHP setcookie「SameSite = Strict」?

我不知道當前的PHP是否支持使用此屬性創建cookie?

參考:

+5

即使setcookie函數沒有,你可以總是輸出自己的自定義'header('Set-Cookie:...')' –

+0

@MarcB:不錯,不要忘了URL編碼的名稱和價值也是。 – SilverlightFox

+0

本主題中的新內容? –

回答

4

好像你可以濫用的「路徑」或PHP的「setCookie方法」功能的「域」參數在SameSite屬性潛行,因爲PHP不逃避分號:

setcookie('samesite-test', '1', 0, '/; samesite=strict'); 

然後PHP發送以下HTTP標頭:

Set-Cookie:samesite-test = 1;路徑= /; samesite = strict

我剛剛在幾分鐘前發現了這個,所以請自己做測試!我使用PHP 7.1.11。

+0

我發現答案有趣,我承認,我從來沒有嘗試過這個,因爲規範不會說(據我記憶)這種可能性...我會測試這個看它是如何表現的 –

+0

我已經在[phptester ](http://phptester.net/)在PHP 7.0和這個測試是成功的......非常感謝您的迴應! –

+0

在Chrome 63(桌面)62(Android),原生Android(v62)和Opera(48)...上不支持Firefox(57),但下一版本(58)承諾支持。 –

2

根據this site現在看來,這是PHP 7.3的問題。截至投票結果時,對Cookie相關函數的更一般的擴展是beeing實現+ php.ini文件中可能還有一個新的密鑰。

但是正如Marc B已經寫過的,你可以使用header()函數調用來代替,我會在一些文件中用它來包含其他初始的東西。