问题标签 [samesite]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-chrome - 如何避免“Lax+POST”临时干预的 SameSite 2 分钟窗口?
是否有 chrome 标志来避免“Lax+POST”临时干预的 2 分钟窗口?通过这种方式,我们可以在将来删除此行为时测试对我们网站的影响。
来自https://www.chromium.org/updates/same-site的参考 请
注意,“Lax+POST”的 2 分钟窗口是一种临时干预,将在未来的某个时间点移除(在马厩之后的某个时间) Chrome 80 的发布),此时涉及这些流程的 cookie 将需要SameSite=None
,Secure
即使不到 2 分钟。
asp.net - SameSite 属性如何自动添加到我的 Asp.net_SessionID cookie 中?
最近 samesite=lax 自动添加到我的会话 cookie 中!这个属性只是添加到 sessionID:
"Set-Cookie ASP.NET_SessionId=zana3mklplqwewhwvika2125; path=/; HttpOnly; **SameSite=Lax**"
我的网站托管在 IIS 8.5、Windows 2012 R2 上,没有 WAF 或 UrlRewrite,我关闭了 AntiVirus (kasper)。
但在某些客户服务器上也有同样的问题。
任何想法?
编辑: 我发现这个: https: //support.microsoft.com/en-us/help/4524419/kb4524419
现在,当 HttpCookie.SameSite 值为“无”时,ASP.NET 将发出 SameSite cookie 标头,以适应 Chrome 中即将对 SameSite cookie 处理进行的更改。作为此更改的一部分,FormsAuth 和 SessionState cookie 也将使用 SameSite = 'Lax' 而不是之前的默认值 'None' 发出,尽管这些值可以在 web.config 中覆盖。
如何在 web.config 中覆盖 SessionState 的相同站点 cookie?我添加了这一行,但它不适用于 SessionID cookie!
<httpCookies sameSite="Unspecified" />
通过 SessionState 标签的“cookieSameSite”属性为状态服务器设置相同站点。
internet-explorer - IE 或 Edge Print 对话框在没有会话的情况下向服务器发送请求(因为 SameSite=Lax on session cookie)
我有一个asp.net网站,用户可以登录,会员可以通过Ctrl+P获取报告或打印页面。
最近,当我的会员在 IE 中打开我的网站并尝试打印时,他们已登出!
为什么?因为 IE 打印对话框在没有会话 cookie 的情况下向服务器发送了一些请求,所以 StateServer 为该客户端释放新会话,然后用户注销。
为什么打印对话框发送请求?我不知道,但我猜 IE 打印对话框尝试渲染页面并准备好打印。
为什么打印对话框不发送当前会话 cookie?因为 .net 的新更新为会话 cookie 设置了 SameSite=lax,所以来自打印对话框的请求无法发送当前会话 cookie。 https://support.microsoft.com/en-us/help/4524419/kb4524419
如何防止 IE 打印对话框发送请求?或者我如何强制 IE 打印对话框发送相同的会话 cookie?
任何想法?
编辑: 我创建了一个示例项目来显示这个问题。您可以下载我的项目并在 IIS 上托管,然后打开 Default.Aspx 并尝试在 IE(或边缘)中打印该页面。你会看到我的问题。 https://easyupload.io/w6vvpy
session-cookies - SameSite=Strict cookie 保护在 Chrome 和 Firefox 中是否被破坏?
似乎 CSRF 保护属性“SameSite=Strict”并未在所有情况下都提供所需的保护。
场景1(作品):
- 用户登录
https://example.com
。会话 cookie 已设置,受“SameSite=Strict”保护。 - 用户访问
https://attack-1abc2def.com
。跨域表单 POSThttps://example.com/foo
不会发送会话 cookie,很好,保护工作。
方案 2(已损坏):
https://example.com
如上所述登录。设置了会话 cookie:
Set-cookie: PHPSESSID=1234; path=/; domain=.example.com; secure; HttpOnly; SameSite=Strict
- 用户访问
https://attack-1abc2def.com
。该网站制作了一个跨域表单 POST 到https://example.com/login
. 会话 cookie 不会一起发送,因为使用SameSite=Strict
.
但是:/login
路由设置了一个新的会话 cookie
Set-cookie: PHPSESSID=9876; path=/; domain=.example.com; secure; HttpOnly; SameSite=Strict
。(一些框架,比如 Symfony,为每个登录请求设置一个新的会话 cookie,无论是否成功。)
这个 cookie 被存储,因此替换了有效的会话 cookie - 尽管有SameSite
标志。
-> 即使之前的会话仍然有效,浏览器不再使用它,因此用户实际上已注销。
我在 Chrome/78.0.3904.108 和 Firefox/70.0 中对此进行了测试。CSRF 保护适用于场景 1,因为我添加了“SameSite=Strict”标志,但在场景 2 中有描述的问题。
“SameSite”cookie 规范(或浏览器开发人员)是否可能错过了场景 2?
我希望“SameSite”标志不再需要特殊的 CSRF 保护措施。
恕我直言,“SameSite”标志不仅应该防止发送现有的 cookie,还应该防止存储新的 cookie。
regex - 多个cookie的Apache mod_headers正则表达式?
我正在使用以下代码编辑设置特定 cookie 的 SameSite 属性:
这行得通,但是有没有办法将这两个规则组合成一条线?我知道如何将其设置为所有 cookie 或排除特定 cookie,但有没有办法在单行正则表达式中指定 2 个或更多 cookie?谢谢
cakephp - cakePHP 为 SameSite 属性设置 Cookie。但我在代码中找不到它/追踪它
我仍在成为一名开发人员。首先,我无法显示与此问题相关的任何代码,因为我不允许这样做......
使用 Chrome(和其他)的新 cookie 策略,该SameSite
属性必须设置为 None。
我的问题是,我找不到设置 cookie 的任何代码。它来自服务器。我搜索了我目前所在公司的 git 存储库。我在互联网上搜索了所有可能的解决方案。问题在于找到合适的位置。代码是用 php 编写的,到目前为止我还没有学过。
上述 cookie 来自另一个网站,我无法找到它。
javascript - 来自不同来源的 Cookie
给定以下突变解析器:
当代码是这样的时,我收到以下警告:
与http://timetable-yoga-pd.herokuapp.com/上的跨站点资源关联的 cookie设置为没有该
SameSite
属性。SameSite=None
它已被阻止,因为 Chrome 现在仅在使用和设置时才提供带有跨站点请求的 cookieSecure
。您可以在应用程序>存储>Cookies 下的开发人员工具中查看 cookie,并在https://www.chromestatus.com/feature/5088147346030592和https://www.chromestatus.com/feature/5633521622188032中查看更多详细信息。
背景故事:前端部分是一个 React 应用程序,托管在 timetable-react-pd.herokuapp.com 上。后端部分是一个节点应用程序,托管在 timetable-yoga-pd.herokuapp.com 上。
现在,当我按照警告中的要求将安全设置为 true 时,未设置 cookie 标头。我在网上查到,这是正常的。
当我将 sameSite 设置为 false 时,它就像不存在一样(预期行为)。如果将 sameSite 设置为“none”或“None”,警告会消失,但会出现一个新错误,表示 GraphQL 不接受值“none”。
google-chrome - Chrome SameSite Cookie
如果您使用 SameSite cookie 属性并将其设置为严格并且服务器返回一个 http 错误代码,如 404 或 500,则会在 chrome 中显示错误消息。到目前为止,一切都很好。但是,如果在显示 404 错误消息时用户刷新页面(F5 或重新加载按钮),则 cookie 不会随 GET 请求一起发送。
这是正常行为吗?用 FF 71 对其进行了测试,并发送了严格的 cookie。
http - 如何找到我的 cookie 的资源和来源?
有一个由 TS0157d632 命名的 cookie,我想为其分配 SameSite 属性。但是我没有发现那个cookie是从哪里来的?我认为,SSL 证书会影响它,因为相同的代码发布了另一个未在同一域上获得证书的站点,并且 cookie 没有出现。
Cookie 名称 TS0157d632 和网站是https://www.sekerleasing.com.tr/
identityserver4 - 在 SameSite=Lax 的情况下使用 oidc-client 进行静默续订
Chrome 计划在 2020 年 2 月使用 Chrome 80 为 cookie 实施新的默认安全模型。现在我正在测试我们所有可能受到影响的应用程序。
对于身份验证/授权,我们在后端使用 oidc-client(在 UI 上)和 IndentityServer。
工作流程如下:
要求:
POST http://my_identity_server/api/authenticate {用户名,密码}
回应:
设置 Cookie:idsrv=abc
{"redirectUrl":" http://my_identity_server/connect/authorize/callback?client_id=MyApplication&response_type=id_token token&scope=openid"}
要求
http://my_identity_server/connect/authorize/callback?client_id=MyApplication&response_type=id_token token&scope=openid" Cookie:idsrv=abc
回应:
302 位置:http://myApplication/#id_token=123&access_token=456&token_type=Bearer
要求
http://myApplication/#id_token=123&access_token=456&token_type=Bearer
当应用程序加载时,Oidc-client 添加 IFrame 来做静默更新,实际上发送额外的请求
GET http://my_identity_server/connect/authorize?client_id=MyApplication&response_type=id_token token&prompt=none Cookie:idsrv=abc
我不明白为什么最后一个请求在 IFrame 中包含 idsrv cookie?请求是在 IFrame 内完成的,它绝对是第三方 cookie。如果我将 SameSite 设置切换为“严格”,一切都按预期工作,则不会发送 cookie。
如果有人可以向我解释这个案例或提出一些想法来检查,那就太好了!谢谢你!