Полезная информация

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

Разработка » Чтение (доступ к) файлу cookies.sqlite (с помощью Java) » 18-10-2011 03:57:16

Just in case anybody will need it I have downloaded the latest sqlite jdbc 3.7.2 and now everything works fine.

Выделить код

Код:

Connection connection = null;
ResultSet resultSet = null;
Statement statement = null;
HashMap<String, String> firefoxHashMap = new HashMap<String, String>();
 
try {
        Class.forName("org.sqlite.JDBC");
        connection = DriverManager.getConnection("jdbc:sqlite:" + ffArrIndex[i]);
        statement = connection.createStatement();
        resultSet = statement.executeQuery("SELECT * FROM moz_cookies");
 
        while (resultSet.next()) {
                key = resultSet.getString("baseDomain");
                
                if (firefoxHashMap.isEmpty()) {
                        firefoxHashMap.put(key + firefoxLinkColor, "Id: " + resultSet.getString("id") + "\n");
                }
        }
} catch(Exception e) {}

Разработка » Чтение (доступ к) файлу cookies.sqlite (с помощью Java) » 07-07-2011 11:54:13

А откуда тогда идет запуск этого кода? В среде браузера как расширение?

Разработка » Чтение (доступ к) файлу cookies.sqlite (с помощью Java) » 07-07-2011 01:51:08

Теперь я внес изменение:
заменил
Components.utils.import("resource://gre/modules/Services.jsm");
на
Components.utils["import"]("resource://gre/modules/Services.jsm");

Новый ексепшин:
sun.org.mozilla.javascript.internal.EvaluatorException: identifier is a reserved word
в строчке
const { classes: Cc, interfaces: Ci } = Components;

Получаю другой ексепшин при модификации: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "Components" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1

[code]Components.utils["import"]("resource://gre/modules/Services.jsm");
var dbFile=Services.dirsvc.get("ProfD", Components.interfaces.nsIFile);
dbFile.append("cookies.sqlite");
var ssvc=Components.classes["@mozilla.org/storage/service;1"].getService(Components.interfaces.mozIStorageService);
var mDBConn = ssvc.openDatabase(dbFile);
var stmt=mDBConn.createStatement("select distinct host from moz_cookies order by 1");
var hosts=[];
while (stmt.step()) hosts.push(stmt.ro

Разработка » Чтение (доступ к) файлу cookies.sqlite (с помощью Java) » 06-07-2011 06:38:19

Спасибо, добавил. Теперь дает ексепшин sun.org.mozilla.javascript.internal.EvaluatorException: missing name after . operator

Выделить код

Код:

Components.utils.import("resource://gre/modules/Services.jsm");
const { classes: Cc, interfaces: Ci } = Components;

var dbFile=Services.dirsvc.get("ProfD", Ci.nsIFile);
dbFile.append("cookies.sqlite");
var ssvc=Cc["@mozilla.org/storage/service;1"].getService(Ci.mozIStorageService);
var mDBConn = ssvc.openDatabase(dbFile);
var stmt=mDBConn.createStatement("select distinct host from moz_cookies order by 1");
var hosts=[];
while (stmt.step()) hosts.push(stmt.row.host);
stmt.finalize();
mDBConn.close();
Services.console.logStringMessage(hosts.join("\n"));

Разработка » Чтение (доступ к) файлу cookies.sqlite (с помощью Java) » 06-07-2011 06:17:38

Я могу запустить скрипт следующим образом с Java приложения? :

Выделить код

Код:

ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.eval(new FileReader("script.js"));
System.out.println(engine.get("hosts[1]"));

(дает ексепшин sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "Services" is not defined.)

hydrolizer пишет
CodeGust пишет

Вод мои модификации, что неверно?

То, что вы пытаетесь приведенный мною код использовать в скрипте html-страницы - система безопасности не позволит вам этого сделать, т.к. это код для trusted content (для расширения, например). И Services.dirsvc.get не принимает в качестве параметра пути, этот метод принимает ключи, указывающие на спец. папки; ключ ProfD в моем примере - это и есть ключ для папки профиля. Если нужен абсолютный путь, придется действовать [url=https://developer.mozilla.org/en/Code_s

Разработка » Чтение (доступ к) файлу cookies.sqlite (с помощью Java) » 06-07-2011 04:09:08

Спасибо! Выглядит эффективно, но я немогу заставить этот код работать.

Вод мои модификации, что неверно? Начальный код также не работает.

[code]

        function readFF()
        {
            var dbFile=Services.dirsvc.get("C:\\Users\\MyUserName\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\q6xxxxxx.default\\", Ci.nsIFile);
            dbFile.append("cookies.sqlite");
            var ssvc=Cc["@mozilla.org/storage/service;1"].getService(Ci.mozIStorageService);
            var mDBConn = ssvc.openDatabase(dbFile);
            var stmt=mDBConn.createStatement("select distinct host from moz_cookies order by 1");
            var stmt2=mDBConn.createStatement("select distinct name from moz_cookies order by 1");
            var stmt3=mDBConn.createStatement("select distinct expiry from moz_cookies order by 1");
            var hosts=[];
            var names=[];
            var expiries=[];
            while (stmt.step()) {
                    hosts.push(stmt.row.host);
                 

Разработка » Чтение (доступ к) файлу cookies.sqlite (с помощью Java) » 04-07-2011 23:45:13

Я пишу java апплут который читает кики (cookies) FireFoxа. Как (получить доступ, если необходимо и) читать файл (базу данных) cookies.sqlite (используя Java)?

Я попробовал с драйвером org.sqlite.JDBC но безуспешно. Получил следующий ексепшен: file is encrypted or is not a database.
Также пробовал SqlJetDb и получил ексепшин "org.tmatesoft.sqljet.core.SqlJetException: NOTADB: error code is NOTADB"
Есть ли необходимым расшифровка файла куки и нужно ли получать какой либо вид доступа к нему?
Спасибо.

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]