【问题标题】:Accessing cookies from a chrome app从 chrome 应用程序访问 cookie
【发布时间】:2013-04-17 22:56:55
【问题描述】:

我可以看到,当我从我的 chrome 应用程序发出 xhr 时,它会发送一些 cookie,并且这些 cookie 会在应用程序中得到跟踪。发送 set-cookie 标头的服务器正在正确更新它们。不过我需要读取一个 cookie,我尝试使用“cookies”权限,但 chrome 对我大喊大叫……还有其他 api 我可以使用吗?

编辑:我正在使用新的打包应用程序。

【问题讨论】:

  • 一些cookies是http-only。因此,不应该有办法通过 JavaScript 获取它们。
  • 我强烈反对。我不应该使用套接字来实现 HTTP 请求只是为了获取我需要的返回标头(set-cookie)
  • 在任何情况下,我都不会尝试获取仅限 http 的 cookie
  • 您的问题与新的打包应用程序有关吗?
  • 我几乎可以肯定这是不可能的,因为 document.cookie API 在打包的应用程序中被禁用。但我不会发送答案,因为使用沙盒 iframe 可能存在一些我不知道的创造性/复杂方式。

标签: google-chrome-app


【解决方案1】:

Cookie 显然是 Chrome 打包应用程序的一个黑暗区域。

使用扩展程序,扩展程序与正常浏览活动共享 cookie 罐。对于打包应用,每个应用都有一个单独的 jar。

当前的行为似乎是对权限部分清单中指定的站点的 XHR 请求确实在此 jar 中设置了 cookie,但除了重新安装应用程序之外,没有办法摆脱它们。打包应用程序没有 API 来管理 cookie,并且它们的 cookie 不会显示在开发者工具或 about://settings/cookies 页面中。

crbugs 包括

https://code.google.com/p/chromium/issues/detail?id=70391 https://code.google.com/p/chromium/issues/detail?id=152758 https://code.google.com/p/chromium/issues/detail?id=157474

这两个问题是针对这个 SO question 填写的

https://code.google.com/p/chromium/issues/detail?id=236585 https://code.google.com/p/chromium/issues/detail?id=335934

【讨论】:

  • 我注意到有一些 optional_permissions 也包含 cookie,是否有人尝试使用这些权限访问/删除 cookie?
【解决方案2】:

我有一个类似的问题,在具有 chrome.socket api 权限的打包应用程序中对 XHR 的安全限制似乎很霸道。见Setting "unsafe" headers in packaged app XHR

我最终为我的用例创建了一个“shim”xhr 对象,尽管它不处理例如分块编码。您可能会发现它很有用:https://github.com/kzahel/jstorrent/blob/fresh/js/chromesocketxhr.js

我最终在 crbug 上提交了一个错误:https://code.google.com/p/chromium/issues/detail?id=335934

【讨论】:

  • 感谢您的信息,我在问题中添加了一些 cmets。希望他们能解决这个问题,这样我们就不必在套接字上重新实现 xhr。
猜你喜欢
  • 2010-11-29
  • 2014-09-10
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多