3

我不确定这是否可能,但有没有办法从 Firefox 的 cookies.sqlite 文件中从雅虎获取 cookie,然后在 Java 程序中使用该信息?当我登录雅虎时,我告诉它让我保持登录状态。由于浏览器认为我仍然登录,因此该信息存储在 cookie 中(我假设)。

我看到 yahoo 有他们的开发者 API和一些 OAuth 库。为了能够使用 OAuth 登录,我需要注册我的程序,但除非必须,否则我不想注册。我从 SO中找到了这篇关于如何使用 sqlite.exe 查看文件的帖子。但是,该文件看起来像胡言乱语(对人类而言),我不知道哪个条目是我的 cookie。

是否有另一种方法来解析此文件以获取我的 yahoo cookie 并在 Java 程序中使用它?我是否必须在雅虎注册我的“秘密”程序才能正确使用 OAuth 登录雅虎?提前感谢您能给我的任何帮助。

4

2 回答 2

2

Cookie 存储在一个 sqlite 文件中,所以这对我有用:

$ sqlite3 ~/.mozilla/firefox/*.default/cookies.sqlite
sqlite> select name,value from moz_cookies where host="bugs.kde.org" and name LIKE "Bugzill%";

我的用例是提取 bugzilla cookie 以便将其提供给脚本。对于其他用例,显然要相应地调整 SQL 查询。

于 2019-01-12T14:26:54.987 回答
2

对于 Firefox,试试这个。它基于使用 Firefox 存储的会话恢复文件。这是 bash 语法,不是 Java,但可能很容易适应。

grep -o '{"host":"<HOSTNAME>"[^}]*}' $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js

这应该将每个 cookie 转储为与您输入的任何内容相关联的 JSON 条目<HOSTNAME>。您可以进行调整以提取您想要的特定 cookie。

注意:如果您有多个 FF 配置文件,您可能需要调整该*.default部分。目录名称存储在 中.mozilla/firefox/profiles.ini,但如果只存在一个配置文件,则从那里提取它真的是矫枉过正。

于 2017-01-30T22:11:58.300 回答