如何修复“将 SameSite cookie 设置为无”警告?

2024-04-03

我创建了一个 chrome 扩展,并从 popup.js 调用读取 cookie 的 PHP 脚本(使用 Xhttprequest)。像这样:

$cookie_name = "mycookie";

if(isset($_COOKIE[$cookie_name]))
{
    echo $_COOKIE[$cookie_name];
}
else{
    echo "nocookie";
}

但我在扩展错误时收到此警告。

设置了与跨站点资源(这是我的域)关联的 cookie,但没有SameSite属性。 Chrome 的未来版本将仅在设置了跨站点请求的情况下传递 cookieSameSite=None and Secure。您可以在开发者工具中的“应用程序”>“存储”>“Cookies”下查看 Cookie,并查看更多详细信息:https://www.chromestatus.com/feature/5088147346030592 https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032 https://www.chromestatus.com/feature/5633521622188032.

我尝试创建一个像这样的cookie,但没有帮助。

setcookie($cookie_name,$cookie_value, time() + 3600*24, "/;samesite=None ","mydomain.com", 1);

遵循来自的指示this https://stackoverflow.com/questions/39750906/php-setcookie-samesite-strict问题。


我也在为此进行“反复试验”,但 Google Chrome 实验室 GitHub 的这个答案对我有一点帮助。我将其定义到我的主文件中,并且它工作正常 - 很好,仅适用于一个第三方域。仍在进行测试,但我渴望用更好的解决方案更新这个答案:)

我现在使用 PHP 7.4,这种语法运行良好(2020 年 9 月):

$cookie_options = array(
  'expires' => time() + 60*60*24*30,
  'path' => '/',
  'domain' => '.example.com', // leading dot for compatibility or use subdomain
  'secure' => true, // or false
  'httponly' => false, // or false
  'samesite' => 'None' // None || Lax || Strict
);

setcookie('cors-cookie', 'my-site-cookie', $cookie_options);

如果你有PHP 7.2 或更低版本(正如罗伯特在下面的回答):

setcookie('key', 'value', time()+(7*24*3600), "/; SameSite=None; Secure");

如果您的主机已更新为PHP 7.3,你可以使用(感谢马恩的评论):

setcookie('cookieName', 'cookieValue', [
  'expires' => time()+(7*24*3600,
  'path' => '/',
  'domain' => 'example.com',
  'samesite' => 'None',
  'secure' => true,
  'httponly' => true
]);

您可以尝试检查 cookie 的另一件事是启用下面的标志,用他们自己的话说,“将为可能受此更改影响的每个 cookie 添加控制台警告消息”:

chrome://flags/#cookie-deprecation-messages

完整代码请参见:https://github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md https://github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md,他们有代码same-site-cookies too.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复“将 SameSite cookie 设置为无”警告? 的相关文章

  • Elasticsearch 如何使用通配符进行 OR 查询

    我很难尝试使用 elasticsearch 构建查询 我想查询类似的内容 WHERE field 1 is match string OR field 2 is wildcard match string OR field 3 is fuz
  • 使用 Ajax 和 PHP 上传图像

    我想将图像上传到我的服务器 并控制 HTML 代码中的 PHP 回显 为此 我想使用 jQuery Ajax 但我不知道如何使用 Ajax 将图像发送到 PHP 这是一个大学项目 所以我不能使用任何类型的插件 我的实际代码 HTML
  • 以零开头的字符串/数字的正确格式?

    我正在尝试使用 PHP 创建一个包含电话号码列表的文件 它工作正常 但如果电话号码以零开头 则该数字将从 Excel 文件中删除 有谁知道如何正确设置格式以使其保持不变 Either Set the value explicitly as
  • Yii 添加条件

    我尝试根据我的条件从表中获取行 我的代码 conditions array id gt array 148028 118508 criteria new CDbCriteria foreach conditions as key gt va
  • PHP 查找最接近时间线期间的日期

    所以 呃 好吧 这可能会涉及到数学问题 所以希望你带上科学计算器 这是我的问题 给定初始日期 时间戳 时间段 秒 和今天的日期 时间戳 我需要找到与 period n 加上原始 初始日期一致的最近日期 到目前为止 我得到了一些运行良好的东西
  • PHP Google Drive API - 文件上传仅作为“无标题”-文件或只是没有内容

    我正在寻找一种解决方案 通过 PHP 将文件从我的根服务器直接上传到我的 Google Drive 帐户 授权工作正常 但当我尝试传输文件 例如 test jpg 时 它只是在 Google Drive 中创建一个名为 Untitled 的
  • LDAP 过滤器用于区分名称

    我使用以下代码成功查询 Active Directory 中的用户 filter objectCategory person samaccountname someusername fields array samaccountname m
  • 按带宽限制成员资格

    我刚刚将 Codeigniter 应用程序部署到 Amazon EC2 使用 S3 作为媒体 使用 RDS 作为 MySQL 我需要根据使用的带宽量限制用户帐户访问 帐户将基于带宽 例如基本帐户 x 每月最多 20GB 等 但是我不知道最好
  • PHP 中的 XPath 删除 HTML 标签

    我在 PHP 中使用 XPath 来检索 HTML 文档的一部分 假设我的 HTML 文档如下所示 div a href some link address com Hello a p Some text here p div div p
  • PHP,检查 URL 和文件是否存在?

    我为 WordPress 创建了一个插件 需要存在两个文件才能正常运行 第一个文件定义为文件系统路径 第二个文件定义为 URL 假设第一个文件是 home my site public html some folder required f
  • php 测试字符串是否包含三个字符串之一?

    实现以下目标的最佳方法是什么 我有一个 img变量包含例如myimage left jgp someimage center jpg or img right jpg 最好的测试方法是什么 left right or center文件名并提
  • 电子邮件标题中的特殊字符是什么以及何时使用引号?

    我正在尝试使用 PHP 发送和阅读电子邮件 到目前为止 我发现我必须使用该函数对特殊字符进行编码mb encode mimeheader 但我不必对空格进行编码 我还发现地址字段中的括号不起作用 读取带有括号的标题时 PHP 的 imap
  • 选择 MYSQL 行,但将行转换为列,将列转换为行

    我想选择数据库中的所有行 但我希望它们按相反的顺序排列 意思是 我想使用第一列数据作为新实体 并将实体作为第一列 我想你明白我的意思 这是一个例子 id name marks 1 Ram 45 2 Shyam 87 to id 1 2 Na
  • 通过 wp_handle_upload 删除未放入上传文件夹中的图像

    我正在将图像保存到上传文件夹 但我正在使用文件放置内容 http php net manual en function file put contents php代替wp 句柄 上传 https codex wordpress org Fu
  • Magento:查找包含产品的订单

    Magento 有没有办法找到包含给定产品的所有订单 如果可以通过管理面板来完成就更好了 报告 gt 产品 gt 订购的产品向我提供了产品销售的日期以及包含该产品的订单数量 但我需要知道哪些特定订单包含该产品 谢谢你 这个问题我在另一个问题
  • Drupal:*.api.php 中的 hook_ 函数是否被调用过?

    在 Drupal 7 中 每个核心模块都有一个 api php文件 其中 是模块的名称 例如 modules node node api php modules path path api php 这些文件有什么用 它们包含以以下开头的函数
  • 原始 POST 数据是什么?

    我试图理解原始 POST 数据的含义 PHP 手册页 HTTP RAW POST DATA http php net manual en reserved variables httprawpostdata php只是声明这个变量包含Raw
  • 设置基于 PHP 定时器的函数

    我有一个 php 文件test php 我想要echo or print5 秒后 即在浏览器调用 加载或打开 php 文件后不久 成功 顺便说一句 有时我可能想在特定的时间间隔后执行 初始化某些函数 如何使用 php 执行面向时间的任务 例
  • PHP PDO:将数据作为对象获取 - 在调用 __construct 之前分配的属性。它是否正确?

    完整的问题应该是 这是正确的还是我不能指望的错误 为什么这是正确的行为 我一直在更多地使用 PDO 特别是直接将数据提取到对象中 在这样做的过程中我发现了这一点 如果我直接将数据获取到像这样的对象中 STH DBH gt prepare S
  • 用 PDO 和准备好的语句替换 mysql_* 函数

    我总是做简单的连接mysql connect mysql pconnect db mysql pconnect host user pass if db echo strong Error strong Could not connect

随机推荐

  • 检查具有关联的对象

    我有两个模型 其中 A has many B 如果我加载 A 包括关联的 B a A find first include bs a inspect只显示a的属性 gt a 我能怎么做a inspect这样它就会显示所有关联的a bs 默认
  • Android 旋转位图而不进行复制

    有没有办法旋转位图而不复制它 或者也许是保存位图的图像视图 现在我有类似的东西 Bitmap bm BitmapFactory decodeFile get the orientation Matrix m new Matrix m pos
  • Linux 内核的静态调用图生成

    我正在寻找一个工具来静态生成 Linux 内核的调用图 对于给定的内核配置 生成的调用图应该是 完整的 即包含所有调用 包括潜在的间接调用 我们可以假设在 Linux 内核的情况下只能通过使用函数指针来完成调用 例如 这可以通过分析函数指针
  • pytest。使用堆叠参数化装饰器时定义预期结果的最佳方法?

    我有两个类似的测试用例 每个都有超过 100 行代码 这些代码为测试创建辅助对象 这些行非常相似 事实上 测试设置之间只有 2 行不同 我不想删除这些代码重复 我认为多个参数化可能会帮助我完成这项任务 使用多个参数化 我可以将设置组合起来
  • PHP会话文件权限

    我有文件index php
  • WebLogic 和 OSGi

    有没有办法在 Weblogic 应用程序服务器中运行 OSGi 容器 我知道它可以与 JBoss Glassfish 配合使用 并且可以将 Equinox servlet 桥添加到您的 OSGi 项目中 桥的实现太旧了 但我想要类似 JBo
  • npm install packagename --save-dev 不更新 package.json

    有没有简单或微妙的原因package json运行 save dev 后不会更新吗 这是我的命令 npm install modulename save dev 从项目的根目录运行 命令成功 新模块按预期显示在 node modules 目
  • 如何增加TabLayout中选项卡的图标大小

    我正在尝试增加应用程序中选项卡的图标大小 图标大小是固定的 尝试了很多方法 但没有任何效果 最后尝试了以下方法 但大小没有改变 如果有人能告诉我正确的方法 我会很高兴 提前致谢 这是我的代码 Toolbar toolbar Toolbar
  • @TransactionalEventListener 不起作用,因为 @EventListener 对于相同上下文就像魅力一样工作

    我正在从事 Spring Boot 应用程序的事件驱动设计 该代码由以下文件组成 Spring boot ApplicationEvent 文件 即 MyBusinessEvent java Data AllArgsConstructor
  • 有谁知道如何在 Rails 2.3 中正确处理用户时区?

    我们正在构建一个 Rails 应用程序 需要在多个时区显示日期 更重要的是计算日期 谁能告诉我如何在 Rails 2 3 5 或 8 中使用用户时区 我见过的最具包容性的文章详细介绍了用户时区的工作原理 如下 http wiki rubyo
  • 是否可以编辑 JWT 令牌的过期时间?

    我是智威汤逊世界的新手 很高兴在这里获得一些帮助 我有一个应用程序可以与这个出色的解决方案完美配合 但在用户登录我的应用程序时发现延长令牌过期的一个小问题 换句话说 我想在用户每次使用他以前的 JWT 访问我的应用程序时更新过期时间 有没有
  • 通过xmpp在android中传输文件?

    我只是想通过 xmpp 传输文件 我正在使用 asmack lib 我在下面遇到异常 E AndroidRuntime 332 FATAL EXCEPTION main E AndroidRuntime 332 java lang Null
  • useEffect props 回调函数导致无限循环

    我有一个与此非常相似的问题 如何修复 React Hook useEffect 中缺少的依赖项 https stackoverflow com questions 55840294 how do i fix missing dependen
  • 将第二个类添加到 RowDataBound 中的 gridview 行

    我希望以编程方式向 GridView 添加一个附加类 我知道我可以使用以下代码来做到这一点 public void RowDataBound object sender GridViewRowEventArgs e DataRow row
  • 使用 Metal 进行屏幕撕裂和相机捕捉

    为了避免同时从 gpu 和 cpu 写入常量缓冲区 Apple 建议在信号量的帮助下使用三重缓冲系统 以防止 cpu 领先于 gpu 太多 这很好 并在现阶段至少有三个金属视频 然而 当常量资源是 MTLTexture 并且 AVCaptu
  • 为什么 m_array.count 在 for 循环中用作条件时会失败? [复制]

    这个问题在这里已经有答案了 这有效 int i start end start m cardArr count 1 end m cardArr count 4 NSLog i i m cardArr count 1 m cardArr co
  • Android 动态壁纸设置无法从“配置...”菜单加载

    我无法从 壁纸 gt 配置 加载动态壁纸首选项 当我单击 动态壁纸 菜单中的 设置 按钮时 首选项加载正常 以下是一些屏幕截图 可以更好地解释该错误 错误日志 http dl dropbox com u 426528 RrD device4
  • 由于其配置原因,无法加载 Web 应用程序项目

    我在 VS2013 中加载 Web 应用程序项目时遇到问题 这个项目依赖于IIS Express 但我不会安装IIS Express 因为我已经安装了IIS 我可以在 csproj 文件中编辑什么来加载该项目 我尝试将其设置为 false
  • 检查字符串是否包含多个单词之一

    我正在尝试在 php 中创建一个单词过滤器 并且我遇到了之前的 Stackoverlow 帖子 其中提到了以下内容来检查字符串是否包含某些单词 我想要做的是对此进行调整 以便它一次性检查各种不同的单词 而不必一遍又一遍地重复代码 a How
  • 如何修复“将 SameSite cookie 设置为无”警告?

    我创建了一个 chrome 扩展 并从 popup js 调用读取 cookie 的 PHP 脚本 使用 Xhttprequest 像这样 cookie name mycookie if isset COOKIE cookie name e