如何为 PHP Cookie 实现 SameSite 属性?

Patricia Arquette
发布: 2024-10-24 20:26:29
原创
180 人浏览过

How to Implement the SameSite Attribute for PHP Cookies?

PHP Cookie 的同一站点属性

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 中解决。

参考文献:

  • [Chrome 状态:功能文档](https://www.chromestatus.com/feature/5633521622188032)
  • [HTTPbis 草案](https://tools.ietf.org/ html/draft-west-first-party-cookies)
  • [HTTPbis 最新草案](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis)
  • [PHP 手册:setcookie()](https://php.net/manual/en/function.setcookie.php)

以上是如何为 PHP Cookie 实现 SameSite 属性?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!