首页
学习
活动
专区
圈层
工具
发布

使用跨站点cookie从Chrome扩展发布到Rails API

基础概念

跨站点请求伪造(Cross-Site Request Forgery, CSRF)是一种攻击方式,攻击者通过诱导用户在已登录的网站上执行非预期的操作。为了防止这种攻击,通常会使用CSRF令牌。而跨站点cookie则是指在不同的子域名之间共享cookie。

相关优势

  1. 会话管理:跨站点cookie可以简化会话管理,使得用户在不同子域名之间切换时保持登录状态。
  2. 个性化体验:可以基于用户的cookie信息提供个性化的内容和服务。

类型

  1. 第一方cookie:由同一域名下的页面设置和读取。
  2. 第三方cookie:由不同域名下的页面设置和读取。

应用场景

  1. 多子域名应用:当一个应用有多个子域名时,跨站点cookie可以用于在这些子域名之间共享用户会话信息。
  2. 单点登录(SSO):在多个应用之间共享用户登录状态。

问题与解决方案

问题:Chrome扩展发布到Rails API时遇到跨站点cookie问题

原因

  1. 同源策略:浏览器出于安全考虑,限制了不同源之间的脚本访问。
  2. CSRF保护:Rails默认启用了CSRF保护,要求每个请求都包含有效的CSRF令牌。

解决方案

  1. 设置合适的CORS策略: 在Rails应用中配置CORS(跨域资源共享),允许来自Chrome扩展的请求。
  2. 设置合适的CORS策略: 在Rails应用中配置CORS(跨域资源共享),允许来自Chrome扩展的请求。
  3. 传递CSRF令牌: 在Chrome扩展中,确保每次请求都包含Rails生成的CSRF令牌。
  4. 传递CSRF令牌: 在Chrome扩展中,确保每次请求都包含Rails生成的CSRF令牌。
  5. 配置Rails以接受跨站点cookie: 确保Rails应用能够接受跨站点的cookie。
  6. 配置Rails以接受跨站点cookie: 确保Rails应用能够接受跨站点的cookie。

参考链接

通过以上步骤,你应该能够解决Chrome扩展发布到Rails API时的跨站点cookie问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Chrome 83 发布,支持直接读写本地文件!新的跨域策略!

受新冠疫情影响,Chrome 稳定版本的更新直接跳过 v82 来到 Chrome 83,因此很多原本在 Chrome 82上就要正式发布的功能也悉数积攒到了本次更新的 Chrome 83 中。...速览 本地文件系统 新的内存监控 API 新的跨域策略 原生表单控件优化 混合内容下载提醒 新增可信类型 Cookie 隐私改进 默认启动 DoH 本地文件系统 Chrome 83 支持了一项新的本机文件系统...现在这些表单改进也可以直接在 Chrome 83 稳定版使用,你会发现一些常见的网页控件,包括勾选框、文本框、下拉选单、滑动工具条等等都已经从原先带有高光、渐变和阴影的「复古」样式演进为扁平、清爽的现代风格...你可以通过单击地址栏中的“眼睛”图标来允许特定站点使用第三方 Cookie。...另一方面在 Chrome 80 中开始推进的安全检查功能在本次更新中进一步加强,这一次除了会提醒密码是否泄露之外,还会检查扩展是否存在安全问题,扩展部分菜单也进行了单独设计。

2.1K20

三方 Cookie 替代品 — 隐私沙盒的最新进展

从 Chrome 92 开始,我们在浏览器使用的一些例如 navigator.userAgent 、navigator.appVersion、navigator.platform 这样的 API 将会收到警告...CHIPS 如果我们允许站点上的 Cookie 在跨站点的情况下被发送(例如 iframe 嵌入或 API 调用),应该遵循 CHIPS 提案 ,它会将 cookie 标记为 已分区,并且将它们放在每个顶级站点的单独...跨站点跟踪:缓存可用于存储类似 cookie 的标识符,作为跨站点跟踪机制。 为了减轻这些风险,Chrome 从 Chrome 86 开始对 HTTP 缓存进行分区。...具体可以参考我这篇文章: 新的浏览器缓存策略变更:舍弃性能、确保安全 广告内容展示 随着浏览器逐步淘汰第三方 cookie,在广告业务下,我们需要在不继续启用跨站点跟踪的情况下,使用新的 API 来替代它...这个 API 在 Chrome 92 版本开始测试,目前还处于测试状态,详情可以到这里了解:https://developer.chrome.com/docs/privacy-sandbox/attribution-reporting

96610
  • Web Hacking 101 中文版 八、跨站请求伪造

    八、跨站请求伪造 作者:Peter Yaworski 译者:飞龙 协议:CC BY-NC-SA 4.0 描述 跨站请求伪造,或 CSRF 攻击,在恶意网站、电子邮件、即使消息、应用以及其它,使用户的...现在,对于 CSRF 和 CSRF Token 来说,跨域资源共享似乎越来越普遍了。或者只是我注意到是这样。本质上,CORS 限制了资源,包括 JSON 响应,被外域访问。...就会提交表单,它实际上包含 Shopify API 的 GET 请求,使用受害者的浏览器,并提供 Shopify 的 Cookie。...重要结论 扩展你的攻击领域,并从站点转向它的 API 终端。API 提供了极大的漏洞可能性,所以最好牢记他,尤其是当你知道 API 可能开发完毕,或者在站点实际开发之后可用的时候。 2....通常,如果站点执行 POST 请求,Web 表单都统一由应用框架保护,例如 Rails,但是 API 又是另外一个事情。

    1.1K20

    2022 年前端大事记

    [3-22] Cookie 新增 Partitioned 属性 Chrome 将在 100 到 103 版本启动 Cookie CHIPS 试用版本!...CHIPS 指的是具有独立分区状态的 Cookie,它允许开发者将 Cookie 选择到“分区”存储中,每个顶级站点都有单独的 Cookie jar``。...例如:在站点 A 中通过 iframe 嵌入了一个站点 C,正常情况下如果三方 Cookie 被禁用后,C 是无法在 A 站点访问到它的 Cookie 的。...它只会在站点 A 中通过 iframe 嵌入站点 C 时才会生效,浏览器会判定只会在顶级站点为 A 时才发送该 Cookie。...当用户访问一个新站点时,例如站点 B,如果也它通过 iframe 嵌入了站点 C,这时在站点 B 下的站点 C 是无法访问到之前在 A 下面设置的那个 Cookie 的。

    1.5K50

    两个你必须要重视的 Chrome 80 策略更新!!!

    2.强推 SameSite Cookie SameSite 是 Chrome 51 版本为浏览器的 Cookie 新增的了一个属性, SameSite 阻止浏览器将此 Cookie 与跨站点请求一起发送...例如,对于一个普通的站点,这意味着如果一个已经登录的用户跟踪一个发布在公司讨论论坛或电子邮件上的网站链接,这个站点将不会收到 Cookie ,用户访问该站点还需要重新登陆。...Lax 属性只会在使用危险 HTTP 方法发送跨域 Cookie 的时候进行阻止,例如 POST 方式。...相对地,如果用户在 A 站点提交了一个表单到 B站点(POST请求),那么用户的请求将被阻止,因为浏览器不允许使用 POST 方式将 Cookie 从A域发送到B域。...以下是 Chrome 80 和早期的 Chrome(77 以上)版本中开发者工具控制台的警告: 在 Chrome 88 之前,您将能够使用策略还原为旧版 Cookie 行为。

    4.4K40

    2023 年前端大事记

    [5-30] Cookie CHIPS 进入稳定版本 具有独立分区状态的 Cookie (CHIPS) ,它允许开发者将 Cookie 选择到“分区”存储中,每个顶级站点都有单独的 Cookie jar...我们的顶级站点可以读取到 iframe 的 src 属性,这就意味着顶级站点可以从广告的 URL 推断有关访问者兴趣的信息,这在一定程度上就泄露了用户隐私。...了解更多:Rspress 1.0 正式发布,基于 Rspack 的高性能静态站点生成器 [10-14] Chrome 正式宣布三方 Cookie 禁用时间线 三方 Cookie 为 Web 提供了跨站点跟踪的能力...Chrome 正式宣布了三方 Cookie 禁用时间线,计划从 2024 年第一季度开始对 1% 的用户禁用第三方 Cookie,以方便大家测试。...然后从 2024 年第三季度开始将禁用范围扩大到 100%。如果你的网站还在使用第三方 Cookie,现在就该采取行动了。

    67410

    【网络知识补习】❄️| 由浅入深了解HTTP(四) HTTP之cookies

    新的浏览器API已经允许开发者直接将数据存储到本地,如使用 Web storage API (本地存储和会话存储)或 IndexedDB 。...从 Chrome 52 和 Firefox 52 开始,不安全的站点(http:)无法使用Cookie的 Secure 标记。...(在原有 Cookies 的限制条件上的加强,如上文 “Cookie 的作用域” 所述) Lax。与 Strict 类似,但用户从外部站点导航至URL时(例如通过链接)除外。...在新版本浏览器中,为默认选项,Same-site cookies 将会为一些跨站子请求保留,如图片加载或者 frames 的调用,但只有当用户从外部站点导航到URL时才会发送。...这些法规包括以下要求: 向用户表明您的站点使用 cookie。 允许用户选择不接收某些或所​​有 cookie。 允许用户在不接收 Cookie 的情况下使用大部分服务。

    2.3K20

    使用IdentityServer出现过SameSite Cookie这个问题吗?

    无论您是否直接导航到该域,如果浏览器只是从该域加载资源(即图像),向其发送 POST 请求或将其中的一部分嵌入到 iframe 中。...为此,当浏览器位于您自己的域中时,它引入了同站点 cookie 的概念,而当浏览器在不同域中导航但向您的域发送请求时,它引入了跨站点 cookie 的概念。...如果 cookie 明确指出 SameSite=None,Chrome 80 只会将该 cookie 从 iframe 发送到 IdP,这被认为是跨站点请求。...如果不是这种情况,您的静默令牌刷新将在 2 月 Chrome 80 发布时中断。...要解决这个问题,我们首先需要确保需要通过跨站点请求传输的 cookie(例如我们的会话 cookie)设置为 SameSite=None 和 Secure。

    1.9K30

    准备好迎接三方 Cookie 的终结

    通常,发送到跨站点上下文的 Cookie(例如,iframe 或子资源请求)被称为第三方 Cookie。...Chrome 为此已经专门构建了很多 API(如 Topics API 和 Federated Credential Management),以及通过一些 Web 的标准提案来限制 Cookie 的使。...我们只需要添加一个额外的 Cookie 属性 partitioned,我们的跨站点 Cookie 就会在每个父级网站上自动获得一个不同的 Cookie Jar,从而防止用户在不同站点之间被跟踪。...第二,Chrome 将以前每个分区的 Cookie 限制从 10 个更改为每个分区的动态内存限制为 10KB。 这限制了开发者可以使用少量的大型 Cookie,或者使用大量的小型 Cookie。...从用户的角度来看,First-Party Sets 可以被看作是同一组相关的站点,他们将能够切换控制来允许 Chrome 基于 First-Party Sets 列表做出访问的决策,同时也能够看到他们正在访问的站点是否在第一方集中

    62330

    Cookie 的访问方式可能要有大变化了!

    在最近发布的 Chrome 113、114 两个版本中,有两个关于 Cookie 的变化: Chrome 113:Cookie 第一方集(First-Party Sets)进入稳定版本; Chrome...具有独立分区状态的 Cookie (CHIPS) ,它允许开发者将 Cookie 选择到“分区”存储中,每个顶级站点都有单独的 Cookie jar。...image.png Firefox 在它的 ETP 严格模式和隐私浏览模式下默认对所有第三方 cookie 进行了分区,所以所有的跨站 cookie 都会默认按照顶级站点进行分区。...目前我觉得 Chrome 提供的这种启发式 Cookie 分区的思路还挺好用的,既解决了跨站跟踪的问题,而且也能在一定程度上满足用户需求,希望其他浏览器也借鉴一下吧。...集合的问题,也就是说提供了一种选择性的把一些 Cookie 从三方变为一方的方式。

    81020

    框架分析(6)-Ruby on Rails

    例如,Rails会根据命名规范自动映射URL路径到控制器和动作,减少了手动配置路由的工作。...RESTful路由 Rails框架支持RESTful风格的路由,通过简单的配置,可以将URL路径与控制器和动作进行映射。这使得开发人员可以更容易地创建符合RESTful设计原则的API接口。...安全性 Rails框架内置了一些安全性功能,如跨站点请求伪造(CSRF)保护、参数过滤和安全的cookie处理等。这些功能可以帮助开发人员减少常见的Web安全漏洞。...大量的插件和Gem支持 Rails拥有一个庞大的插件生态系统,开发人员可以通过安装插件或使用Ruby的包管理器Gem来扩展框架的功能。...特别是对于从其他编程语言或框架转换过来的开发人员,可能需要一些时间来适应Ruby的语法和Rails的开发模式。

    2.2K20

    把Postman调试脚本秒变Python爬虫代码的三大技巧

    全文采用“跨界混搭”型结构:先介绍领域 A(API 调试),再映射领域 B(Python 爬虫),随后给出联动实现的三大技巧,最后探讨其价值与应用场景。...Cookie 管理:Session 对象可跨请求自动维护 Cookie。User‑Agent 伪装:通过 headers={'User‑Agent': ...} 可模拟浏览器请求,规避简单反爬检测。...联动实现:三大技巧下面以三大技巧为核心,逐步展示如何从 Postman 脚本到完整 Python 爬虫。...技巧二:Session 管理 + Cookie 与 User‑Agent 伪装在骨架基础上,使用 Session 对象统一管理 Cookie 与 Header:import requestssession...灵活可扩展:三大技巧通用性强,可替换为其他代理服务、爬虫框架或解析库。抗封锁与高效稳定:Session + 自定义 UA + 代理池组合,大幅提升爬虫稳定性与隐蔽性。

    16310

    如何让web网站支持MCP服务?50行代码即可让网站支持MCP,让AI助手与Web应用进行交互:WebMCP

    本篇博客将带你从原理到实战,深度剖析如何使用 WebMCP(又名 MCP-B)在几分钟内让站点 AI 化。...,不再有误点、OCR 解析失败等风险 无需额外认证:复用浏览器已有的 Cookie/Session 认证 实时同步:与 Web 应用状态无缝集成 跨应用工作流:AI 可在多个标签页/应用间自动编排完成任务...: 用户视角:Chrome 扩展如何使用 安装 MCP-B Chrome 扩展 访问支持 MCP 的网站 点击扩展图标,自动列出当前页面及所有打开标签的工具 在聊天界面或 Inspector 中输入自然语言指令...扩展 后,可在任一示例站点直接体验工具调用。...在 Chrome 中安装 MCP-B 扩展。 访问您的页面,点击扩展 -> “Tools” 即可见到 getPageInfo 工具;使用聊天框发起调用。

    42110

    Cook Cookie, 我把 SameSite 给你炖烂了

    直到2020年7月14日Chrome 84稳定版开始,重新恢复SameSite cookie策略,并且会逐步部署到Chrome 80以及以上的版本中。...例如,要求 对于“https://example.com/sekrit-image”, 将附加相同站点的cookie, 即当且仅当从其站点为“example.com”。...直到现在,其实很多前端开发者对这个变化是无感的,主要两个原因: •鉴权token化,cookie更多充当存储;•业务太简单,cookie使用的场景都是同站的,所以新规并没有多大影响,新规是针对跨站做cookie...由于Secure的限制,要携带的跨站点请求必须在带有安全标识站点下发出请求 所以当你输入http://tmall.com,站点302必会重定向到https://tmall.com 安全域名下。...所以为了应对这次更新,一般有两种方法来解决:修改安全限制 和 修改调试站点域名。 修改安全限制就像 关闭跨域限制一样,只需要打开chrome://flag站点进行设置,如下图所示: ?

    2.6K10

    DOM-XSS漏洞挖掘与攻击面延申

    postMessage postMessage可以跨域使用,使用场景比较广泛,如支付成功的回调页面。...chromium支持开发者扩展API,厂商在开发浏览器时,有的为了业务需求,有的出于用户体验,会给浏览器加上一些扩展接口,这些接口通常比较隐蔽,且只对来自于信任域的数据开放接口。...使用了上面的代码对chrome对象进行遍历之后,发现了browser_game_api,继续遍历这个API,看它有哪些变量、函数和对象。...来看一下完整的攻击流程 首先攻击者注册成为Google开发者,在应用市场上发布了一款叫 backdoor_app的应用。...后记 随着浏览器的使用范围越来越广,相信无论是反射型、存储型还是DOM-XSS,都是不容小觑的。 作为开发者,要防御的不仅仅是来自于输入点,有时,来源于自己站点的数据也要加入防御列表。

    3K30

    fencedframe 可以替代 iframe 吗?

    这种技术主要还是通过使用第三方 Cookie 跨站点共享信息的跟踪技术来实现的。 当三方 Cookie 完全禁用,这种技术会受到很大影响。...存储分区 会影响浏览器的所有标准存储 API,包括 LocalStorage、IndexedDB 和 Cookie。在存储分区世界的中,跨第一方存储的信息泄漏将大大减少。...使用 Fenced frames ,我们依然可以显示与访问者兴趣相匹配的广告,但顶级站点是无法从 frame 的 src 属性中推断出用户的兴趣信息的,这个信息只有广告商知道。...> 另外 Fenced frames 可能会和其他的 隐私沙盒 的 API 来配合使用,浏览器可能会为 Fenced frames 生成一个不透明的 URL 。...兼容性 Chrome 从 97 版本后开始支持,其他浏览器尚未支持,如果需要在 Chrome 中试用,可以开启下面的 flag:

    2.6K10

    Google IO 2023 — 前端开发者划重点

    Storage,并且可以跨多个顶级站点进行访问就可能收到影响) 识别三方 Cookie 随着 Chrome 中三方 Cookie 终结的日益临近,Chrome 希望确保我们具备足够的知识和工具来为站点做好迁移准备工作...通常,发送到跨站点上下文的 Cookie(例如,iframe 或子资源请求)被称为第三方 Cookie。...我们只需要添加一个额外的 Cookie 属性 partitioned,我们的跨站点 Cookie 就会在每个父级网站上自动获得一个不同的 Cookie Jar,从而防止用户在不同站点之间被跟踪。...第二,Chrome 将以前每个分区的 Cookie 限制从 10 个更改为每个分区的动态内存限制为 10KB。 这限制了开发者可以使用少量的大型 Cookie,或者使用大量的小型 Cookie。...从用户的角度来看,First-Party Sets 可以被看作是同一组相关的站点,他们将能够切换控制来允许 Chrome 基于 First-Party Sets 列表做出访问的决策,同时也能够看到他们正在访问的站点是否在第一方集中

    69430

    【Chrome】用户可以手动管理和删除第三方Cookie

    第三方Cookie:由用户访问的网站以外的其他网站设置的Cookie,通常用于跨站点跟踪和广告投放。 2. 为什么要管理和删除第三方Cookie?...如果尚未安装,可以从Google Chrome官网下载并安装最新版本。确保你的浏览器是最新版本,以便获得最新的功能和安全更新。 2....你可以选择“阻止所有第三方Cookie”来防止所有跨站点的Cookie,或选择“阻止第三方Cookie,除非你使用的网页已被允许”以允许你信任的网站设置Cookie。 6....方法三:使用隐私扩展程序 Chrome浏览器支持多种隐私扩展程序,这些扩展程序可以帮助你自动管理和删除第三方Cookie: 1....Chrome浏览器会定期发布更新,以提高安全性和性能。确保你使用的是最新版本,以便享受最新的隐私保护功能。 5.4 增强网络安全意识 了解并采取措施增强网络安全意识。

    64310

    理解 CORS

    跨域资源共享(CORS: Cross-Origin Resource Sharing) 你所观察到的这种行为是浏览器 CORS 实现机制的效果。...在 CORS 成为标准之前,由于安全原因,没有办法跨域调用 API。也就是(一定程度上依旧是)被所谓同源策略(Same-Origin Policy)限制住了。...(比如从 example.com 的站点调用 api.example.com) 一个不同的端口(比如从 example.com 的站点调用 example.com:3001) 一个不同的协议(比如从 https...关于“没那么简单”的请求,一个常见的例子是在请求中加入 cookie 或自定义头部 -- 如果浏览器发送了这样的请求且服务器没有正确响应的话,则只有预检调用会发送(不包含额外的头部),而浏览器本应使用的真实的...为了临时解决,可以让浏览器忽略 CORS 机制 -- 比如使用 ACAO Chrome 扩展(译注: 或指 Allow-Control-Allow-Origin: * 扩展) 或用如下参数在启动 Chrome

    1.2K20
    领券