【PHP】如何将Cookie发送到其他域?(Translated: [PHP] How to send cookies to a different domain?)

在打开iframe内的内容URL时,发生了cookie消失的问题。
由于iframe内运行在不同的域,无法将cookie发送到不同的域,因此通过经过不同的域显示的页面中的cookie会消失。

将cookie发送到其他域的方法。

在使用PHP的setcookie()函数设置cookie时,可以通过参数设置安全等详细信息。
本次设置了能够将cookie发送给其他域名的参数,同时保持最基本的安全性。

setcookie('name', 'value', [
    'path' => '/',
    'secure' => true,
    'httponly' => true,
    "samesite" => 'None',
]);

以下是设定中的参数意义。

路径:在服务器上启用Cookie的路径。
如果设置为’/’,则可在该域名的所有子路径下使用。

secure: 设置为true时,只有在https连接的情况下才会发送cookie。

将httopnly设置为true后,仅允许通过HTTP访问cookie,无法从JS等进行访问。

在发送请求到另一个域名时,可以设置cookie的samesite属性。将其设置为None可以允许发送cookie到另一个域名。

如果将samesite设置为None,则安全性将变得非常低,因此需要同时设置其他参数,如secure和httponly,以确保最小限度的安全性。