有没有办法从Firefox cookie文件中提取cookie?

时间:2013-10-21 04:14:17

标签: java sqlite firefox cookies oauth

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

我看到雅虎有他们的developer's API和一些OAuth库。为了能够使用OAuth登录,我需要注册我的程序,但除非必须,否则我不想注册。我发现这个post from SO关于如何使用sqlite.exe来查看文件。但是,该文件看起来像胡言乱语(对人类而言),我不知道我的cookie是什么条目。

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

2 个答案:

答案 0 :(得分:0)

对于Firefox,试试这个。它基于使用Firefox存储的会话恢复文件。这是bash语法,而不是Java,但可以很容易地进行调整。

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

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

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

答案 1 :(得分:0)

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查询。