【问题标题】:Is it possible to manipulate the cookies of a remote computer via Chrome extension?是否可以通过 Chrome 扩展程序操作远程计算机的 cookie?
【发布时间】:2016-11-22 08:32:33
【问题描述】:

一些背景信息:

我已经实现了一个有效的 Chrome 扩展程序来在浏览器中操作 cookie,这与 EditThisCookie 不同。基本功能包括添加、删除、编辑、导入和导出 cookie。

问题:

目前,导入和导出 cookie 使用必须发送的 JSON 平面文件,所以为了方便起见,我想知道是否可以将本地计算机上的 cookie 直接导入远程计算机 通过我的扩展。基本上,我想将 cookie 从一台计算机“推送并设置”到另一台计算机。为简单起见,两者都登录到同一个 Google 帐户。当然,需要有一种方法来识别和验证远程计算机,所以我正在考虑可能使用任何可用的身份验证 API。

由于这个想法还处于起步阶段,我想问一下这在技术上是否可行?我应该知道关于 Chrome 扩展程序(它们如何被沙盒化等)的任何技术限制会阻止我实现这一目标吗?

【问题讨论】:

  • 我认为您需要能够指定要编辑哪些主机的 cookie。即使使用通配符,我不相信您实际上可以授予所有主机的权限,即“*”。

标签: javascript google-chrome cookies google-chrome-extension


【解决方案1】:

假设:

  • 两个 Chrome 实例都登录到同一个帐户
  • 两者都安装了扩展程序
  • 已为扩展程序启用 Chrome 同步(默认)

在这种情况下,chrome.storage.sync API 会自动将更改复制到实例之间的存储中。在这种情况下,您需要做的就是:

  • 一次性更改 cookie
  • chrome.storage.sync中记录所需的cookie状态
  • 使用chrome.storage.onChanged 检测其他实例中的存储更改
  • 处理更改以复制 cookie 状态

请注意,chrome.storage.sync 不会提供所有更改的事务日志 - 仅提供最新状态。尝试将事务日志存储在chrome.storage.sync 中以便您可以执行完全相同的操作很可能会快速命中storage quotas

如果同步存储的配额或要求不适合您的使用案例,您需要制作自己的数据后端服务器。它可以通过chrome.gcm API 或WebSocket 连接与Chrome 进行实时更新,并使用Google 的OAuth 进行身份验证。

还有一些后端服务比推出自己的服务器更容易使用,例如Firebase。有一个sample extension 可以开始使用。

如果您不能假设另一个实例安装了相同的扩展程序,那么您就不能远程操作 cookie,因为它们不是由 Chrome 从远程源同步的。

【讨论】:

  • 如果两个 Chrome 实例没有像不同用户一样登录到同一个帐户,该怎么办? Chrome 同步显然不会工作,那么创建我自己的用户数据库后端的最佳解决方案是什么?
  • 是的,我只是介绍了一个纯扩展 API 解决方案,但它需要 Chrome 同步。显然,制作自己的后端是一个非常广泛的主题。
  • 添加了 Firebase 作为后端的示例解决方案。
猜你喜欢
  • 2011-12-14
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 2012-03-17
  • 1970-01-01
相关资源
最近更新 更多