问题标签 [third-party-cookies]
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 - Chrome 中的第三方 Cookie
在最新版本的 Chrome(MacOS 上的版本 90.0.4430.85)上,我发现第三方 cookie 被禁用,即使在我的浏览器设置中我选中了“允许所有 Cookie”。我还尝试将该站点添加到“始终可以使用 cookie 的站点”并选中“在此站点上包含第三方 cookie”,但它似乎仍然不起作用。我正在访问需要第三方 cookie 的 LTI 课程。(课程很旧,所以可能是个问题)
我知道这是因为我的另一台笔记本电脑有早期版本的 Chrome(大约 80)并且 cookie 正在工作(课程加载),但是当我将我的 Chrome 更新到最新版本时它不再工作。
当我在 Safari 中尝试时,我可以通过禁用“防止跨网站跟踪”来允许第三方 cookie,但我在 Chrome 中找不到此类设置。
关于我可能会尝试在最新版本的 Chrome 上使用第三方 cookie 的任何想法?另外,为什么这个网站可以在早期版本的 Chrome 中运行,但不是最新版本?提前致谢。
ios - 应用程序跟踪透明度弹出窗口是否在 webview 中提供第三方 cookie 访问权限?
新的应用程序跟踪透明度弹出窗口是否允许访问 web 视图中的第三方 cookie?
我们正在尝试在 webview 的 iframe 中显示 Scorm 文件。这需要访问默认情况下被阻止的第三方 cookie。在 iOS 版本 <14.5 中,我们需要转到应用设置并启用跨应用跟踪切换以启用第三方 cookie。无法直接在应用程序中显示弹出窗口。
javascript - 我可以从我被放入 iframe 的其他域读取/访问/收听 cookie 吗?
我有一个跨站点 cookie 问题,例如我是否可以从父窗口或顶部窗口读取/访问/收听 cookie?
假设我的页面是 1234.com,我被放入一系列域(如 abc.com > def.com)内的嵌套 iframe 中,最后被渲染到 xyz.com
我知道由于跨域限制,我无法在 1234.com 的首页 (xyz.com) 上设置 cookie,但有什么方法可以读取或访问或收听 cookie 并在我的网站内制作同义副本?
示例:假设一个用户,来自 Chiacgo 的男性(25-30 岁)(cookie_id=male25)正在阅读页面 xyz.com,在 Iframe 中我的页面 1234.com 也被加载。现在我知道 1234.com 只能在 iframe 上设置 cookie,因此,我在这里想要实现的目标是 -
1234.com 能够读取/收听 xyz.com 的 cookie (cookie_id=male25) 并且何时将 cookie 写入 iframe (cookie_id=1234) 能够写入父 cookie 的精确副本或将其匹配到这样我就可以使用 1234 cookie 来定位与 cookie_id=male25 相同的匹配用户。
我正在考虑像 iframe Busting 这样的技术,以防它有助于打破 iframe 打开我的 1234.com 不受阻碍地访问 window.top,这将允许我读取/访问/收听和编写我自己的 cookie。
你认为如果有这样的可能吗?即使我想知道它是否可能以道德/非道德的方式进行,如果这可能的话。
同样作为发布者,我们如何防止这种情况发生在我们的页面上?
angular - 我们如何访问应用服务器中的身份验证服务器提供的 cookie?
我正在从其官方网站阅读 Angular 的博客(https://blog.angular-university.io/angular-jwt-authentication/ ),其中使用单独的服务器进行身份验证,而应用程序使用不同的服务器。因此,在这种情况下,cookie 将由身份验证服务器发出,但将在应用程序服务器中使用。这怎么可能?我无法从该博客中理解以下解释:
Cookie 和第三方身份验证提供程序
在 cookie 中接收会话 JWT 的一个潜在问题是我们无法从处理身份验证逻辑的第三方 Web 域接收它。
这是因为在其上运行的应用程序
app.example.com
无法访问来自另一个域(如security-provider.com
.因此,在这种情况下,我们将无法访问包含 JWT 的 cookie,并将其发送到我们的服务器进行验证,从而无法使用 cookie。
我们能否充分利用这两种解决方案?
第三方身份验证提供商可能允许我们在我们网站的可配置子域中运行外部托管的登录页面,例如
login.example.com
.因此,将所有这些解决方案的最佳组合在一起是可能的。这是解决方案的样子:
- 在我们自己的子域 login.example.com 上运行的外部托管登录页面,以及在 example.com 上运行的应用程序
- 该页面设置了一个仅包含 JWT 的 HTTP Only 和 Secure Cookie,为我们提供了很好的保护,可以抵御多种依赖于窃取用户身份的 XSS 攻击
- 另外,我们需要添加一些 XSRF 防御,但对此有很好理解的解决方案。
有人请解释以下行:
第三方身份验证提供商可能允许我们在我们网站的可配置子域中运行外部托管的登录页面,例如 login.example.com。
这是什么意思,我们如何在认证服务器上实现这一点,我们如何在应用服务器中访问认证服务器发出的cookie。请澄清这是否意味着在身份验证服务器发出的cookie中将域字段设置为应用程序服务器,或者是其他东西。
此外,如果是这种情况,应用程序服务器如何验证身份验证服务器提供的 cookie。身份验证服务器是否也将此 cookie 发送到应用程序服务器?我们是否也必须建立这种机制?
javascript - 如何允许所有第三方在 chrome 中使用 javascript 或 python?
是否可以使用javascript或python进行以下操作?
在 url 框中输入此内容。chrome://settings/cookies
在 cookie 和其他站点数据中 -> 常规设置 -> 允许所有 cookie
javascript - 检测是否禁用了 3rd 方 cookie
我正在构建一个应用程序并将 Firebase 用作身份验证服务。
每当第三方 cookie 被禁用时,用户就会成功重定向到 Google 的登录屏幕,成功登录 - 但是当它重定向回应用程序时,就像什么都没发生一样。
由于重定向,我在控制台中看不到任何消息,并且网络选项卡显然是空的。
更具体地说,我使用firebase.auth().onAuthStateChanged()
,它简单地解析为null
- 就像登录屏幕的初始状态一样。
我如何才能获得有关第三方 cookie 首先被禁用的任何迹象?
或者至少得到一些关于 Firebase 身份验证失败的迹象?
reactjs - Chrome 禁止第三方 cookie 和跨域身份验证
我最近发现,从 2022 年起,大多数浏览器都将禁止第三方 cookie。(最值得注意的是 chrome)我当前的设置涉及一个 React 前端服务器(在域 A 上)和一个使用 cookie 的 express-passport 后端服务器(使用axios useCredententials: true on domain B) 作为身份验证。不推荐这种设置吗?如果是这样,我应该实施哪些其他配置作为最佳实践?
提前致谢。
javascript - 第三方网站弄乱了我网站的 cookie
当用户单击我网站上的按钮时,会打开一个新窗口,供用户浏览项目的第三方网站。单击一个项目后,新窗口将重定向回我的站点,其中包含有关该项目的数据。
此时(在最终重定向回我的站点之后,而不是之前),我的站点的会话 cookie(连同其他 cookie,我的 csrf 令牌 cookie 也受到影响)被擦除/丢失/刷新或其他。如果我在“主”窗口(甚至新窗口)上重新加载页面,旧会话将消失,用户将被重定向回我的登录页面。
我网站上的响应标头 set-cookie 示例:
mysite_session=XXXXXXXXXXXXX; path=/; domain=.mysite.test; httponly; samesite=lax
我正在为 PHP 使用 Laravel 框架,尽管这不应该是一个因素,因为在我开始将我的应用程序转换为 Laravel 之前,我在使用纯 PHP 时遇到了同样的问题。
每个步骤的代码:
- 用户单击我网站上的按钮。
1.5。打开一个新窗口。这将通过我的网站使用他们的 API 获取第三方网站的一次性 URL。
https://mysite.test/browse在技术上只是:
用户被重定向到第三方站点(不同的域)。
单击一个项目后,用户将被重定向回我的站点 ( https://mysite.test/return ),并带有关于该项目的 POST 数据。
https://mysite.test/return在技术上只是:
我只是无法理解第三方网站怎么可能导致我自己网站的 cookie 被修改。
第三方网站是否有可能对 cookie 做了一些奇怪的事情,或者我做错了什么?有人有什么想法吗?
google-chrome - 当samesite = strict时如何将cookie传递给第三方,这是谷歌浏览器版本91之后的默认行为
我有一个 Web 应用程序,我们正在调用第三方来处理一些数据。完成后,第三方将重定向回我的应用程序(这是一个帖子重定向)。为了保持会话,我们使用 cookie。在谷歌浏览器更新后,samesite=Lax 的默认值,我更新了我们的 cookie 以作为 samesite=None; 安全地克服这个问题。现在在 google chrome 版本 91 之后,这个实现不起作用,我遇到了会话到期问题。有人可以帮助解决 google chrome 91 及更高版本的这个问题吗?我正在使用 java