RFC 6265 引入了 Cookie 的“同一站点”属性,该属性通过限制跨站点请求伪造 (CSRF) 来增强 Cookie 安全性
PHP 支持:
对于 PHP >= v7.3:
setcookie() 函数支持通过 $options 数组的“同一站点”属性。有效值为:
对于 PHP < v7.3:
由于 PHP 核心限制,可以使用多种解决方法:
Apache 配置:
添加以下行修改具有“同一站点”属性的所有 cookie:
Header always edit Set-Cookie (.*) "; SameSite=Lax"
Nginx 配置:
更新配置以包括:
proxy_cookie_path / "; secure; HttpOnly; SameSite=strict";
标头方法:
您可以使用标头显式设置 cookie:
header("Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax");
利用错误:
使用过时的 setcookie() 方法利用了一个错误:
setcookie('cookie-name', '1', 0, '/; samesite=strict');
注意:此错误已在 PHP 7.3 中解决。
参考文献:
以上是如何为 PHP Cookie 实现 SameSite 属性?的详细内容。更多信息请关注PHP中文网其他相关文章!