当前位置: 首页 > 知识库问答 >
问题:

为什么我会得到“通过指定其SameSite属性来指示是否在跨站点请求中发送cookie”?

万俟亦
2023-03-14

在Chrome警告中,它说:

如果cookie应在跨站点请求中发送,请指定SameSite=None和Secure。这允许第三方使用。

如何使用快速会话正确执行此操作?

app.use(
  cors({
    credentials: true,
    origin: ["http://localhost:3000", "https://elated-jackson-28b73e.netlify.app"] //Swap this with the client url 
  })
);
var sess = {
  secret: 'keyboard cat',
  cookie: {}
}

if (app.get('env') === 'production') {
  app.set('trust proxy', 1) // trust first proxy
  sess.cookie.secure = true // serve secure cookies
  sess.cookie.sameSite = 'none'
}

app.use(session(sess))

共有2个答案

云令
2023-03-14

我在localhost中运行代码时遇到了同样的问题。受影响的资源是_ga、_gid、_utma、_utmz。他们都来自unpkg。com和我收到的标记图像传单请求失败,但不影响页面。

因为我不明白具体的问题是什么,所以我只是删除了inspect元素中受影响的资源cookie,代码将在没有notif的情况下再次运行。

我想我知道根据个人经验不回答是否更好。告诉我这是否一点帮助都没有。

郎献
2023-03-14

这是因为您正在使用来自另一个站点的资源,并且该服务器正在尝试设置“cookie”,但它没有设置SameSite属性,这在较新版本的浏览器中会报告。

如果您试图从本地计算机(xampp)访问服务器页面(通常未安装SSL),也会显示此信息;

在服务器页面中设置标题行(如果使用PHP),如下所示:
标题(“set Cookie:cross-site Cookie=where;SameSite=None;Secure”)

(请记住:这必须从服务器端解决。)

 类似资料:
  • 我有一个关于https://dskl.net/xsrf/setcookies.php的页面,它设置了一个带有以下标题的cookie: 如果我进入此页面,将显示cookie的值:https://dskl.net/xsrf/getcookies.php. 但是如果我从另一个域上的表单向该页面发出post请求,cookie也会包含在请求中:https://manabase.com/xsrf/ 没有Sam

  • 当我建立我的项目。Gradle结果是欠块的(我在一些代码中使用了数据绑定) 错误:发现任务“:app:ProcessDebugAndroidTestResources”的配置有问题。>为属性“Res Dir”指定的目录“C:\users\user\desktop\”My project Loaction“\app\build\intermediates\data-binding-layout\An

  • 问题内容: 我需要从一个网站向另一个域中托管的REST Web服务发出AJAX请求。 尽管这在Internet Explorer中很好用,但是其他浏览器(例如Mozilla和Google Chrome)强加了更加严格的安全性限制,这些限制禁止跨站点AJAX请求。 问题是我无法控制站点所在的域或Web服务器。这意味着我的REST Web服务必须在其他地方运行,并且我无法采用任何重定向机制。 这是进行

  • 问题内容: 如何通过JavaScript发送跨域POST请求? 注意-它不应该刷新页面,之后我需要抓取并解析响应。 问题答案: 如果你控制要发布的服务器,只需在服务器上设置响应头即可利用“跨域资源共享标准”。此答案在该主题的其他答案中进行了讨论,但我认为不是很清楚。 简而言之,这里是如何完成从from.com/1.html到to.com/postHere.php的跨域POST(以PHP为例)。注意

  • 问题内容: 我正在尝试使用“ GWT请求”构建器发出“跨站点请求”,但我无法使其正常工作。如您所见,这是一个GWT示例项目的大部分内容,我已经浏览了https://developers.google.com/web- toolkit/doc/latest/tutorial/Xsite 。但是我仍然缺少一些东西。 我在这里发布代码。我在想什么..? 问题答案: 实际上,如果可以在Servlet Re

  • 通过sbt使用Flyway,如何通过系统属性(? 我想通过命令行运行迁移,指定所有参数(驱动程序、url、用户、密码),而不在中定义它们。 插件文档页面似乎表明这应该是可能的: 替代订单 系统属性 我试过这样运行它: 但是飞行路线。url属性似乎被忽略,取而代之的是在构建中定义的flywayUrl属性。sbt。 考虑包含以下文件的项目: 运行此命令: 产生此错误: