Schönen Abend
Ich stecke gerade mit cookies.sqlite von Firefox fest. Öffnen, lesen usw
geht alles perfekt soweit, aber die Daten sind nicht aktuell. Die
Cookies, welche der Browser gerade unter "Show cookies" auflistet,
stehen da nicht drin. Nur diejenigen seit dem Start.
Wahrscheinlich steht alles in cookies.sqlite-wal und/oder
cookies.sqlite-shm drin.
Bloß, wie komme ich da ran?
Die Dateien kann ich nicht als sqlite öffnen, und wenn ich bei der
eigentlichen cookies.sqlite "PRAGMA wal_autocheckpoint" oder "VACUUM"
absetze ändert sich auch nichts. In Firefox sehe ich auch keine
Möglichkeit um einen COMMIT auszulösen (außer Neustart).
Clemens L. schrieb:> Um die letzten Änderungen in die eigentliche DB zu schreiben, benutze> "PRAGMA wal_checkpoint(TRUNCATE);".
Das tut es leider auch nicht. Die andere Session wird von Firefox
gehalten nehme ich an. Aber dort sehe ich keine Option für einen Commit.
Dann hast du die falsche Datenbank.
Einfach mal das Datum der cookies-DB anschauen.
Meine liegt unter den aktuellen Profil.
Und das Zeitdatum ist in Unix-Format abgespeichert.
Und die ist TOP-Aktuell.
Ich kann mir auch nicht vorstellen das die es Riskieren eine DB "offen"
zu lassen. Das mache ich ja auch nicht.
Nebenbei : in cookies.sqlite-wal steht fast nix drin. (Total-Commander
f3-3 drücken).
Die cookies.sqlite-shm sieht nach der History aus. (Total-Commander f3-3
drücken.)
ps. Ich lese SQL Dateien mit einen SQL-Manager aus. Und meine
Freeware-Version ist klasse.
Interessieren dich evtl. die Session-Cookies? Die landen natürlich nicht
in der SQLite-Datenbank, sind aber in den Entwicklertools trotzdem
sichtbar.
je nachdem was du vorhast, ist vielleicht Puppeteer eine bessere Lösung,
https://github.com/puppeteer/puppeteer
(bzw. puppeteer-firefox)
da kommst du per "page.cookies()" direkt an alle Cookies, ohne auf
irgendwelche Datenbank-Commits hoffen zu müssen.
Ich wollte eigentlich aus reinem Basteltrieb die Cookies meines aktuell
geöffneten Firefox regelmäßig per Skript auslesen. Da FF ja sqlite
verwendet, schien es mir ein schönes Übungsprojekt zu sein.
Es sieht allerdings so aus, daß FF die Cookies erst beim Beenden
speichert (wenn man das zulässt), und in about:config habe ich auch
nichts gefunden, was einen regelmäßigen Commit erwzingen könnte.
Gustaf schrieb:> und in about:config habe ich auch> nichts gefunden
Hmm:
>> browser.sessionstore.interval
ändert nix?
Vor einigen Jahren gabs den umgekehrten Shitstorm, weil Firefox durch
den ständigen Commit und Aktualisieren der Recovery-Infos die damals
noch neuen SSDs kaputt geschrieben hat.
Gustaf schrieb:> Ich wollte eigentlich aus reinem Basteltrieb die Cookies meines aktuell> geöffneten Firefox regelmäßig per Skript auslesen.
Da würde ich mit einer WebExtension/Add-On rangehen.
Vorteil: du kriegst alle Cookies, und kannst sie in dem Moment, in dem
sie gesetzt/geändert werden, loggen.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions
(Extension mit "cookie"-Permission für Host "*" anlegen, dort einen
Listener für den cookies-onChanged - Event anlegen)
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies
Ich bin an einer ähnlichen Sache dran. ;)
Naja, der VB-Code ist zu 80% fertig, aber das ist eins der Projekte wo
ich Bock haben muss dafür.
Allerdings plane ich eine Cookie-Verwaltung. Was bedeutet ich habe der
DB einige Felder hinzugefügt.
Eins davon ist "haben_will". Wenn das Feld auf JA steht, wird der/die
Cookie nicht gelöscht.
Weil GENAU die Funktion vermisse ich in FF. Es gibt nämlich viele
Cookies die ich haben will/Brauche Teils wegen der EU (nervige Abfrage)
+ Teils für Zugänge der Stufe "Mir doch egal" = Logins in Foren etc.
Soll so funktionieren. Ich lasse mir die Cookies anzeigen die NEU sind,
also haben_will = none. Dann suche ich die wenigen Cookies raus die ich
habe will, kommt sehr selten vor (neue wichtige Seite etc.) wir z.b. das
Forum hier, und setzte HABEN_will auf "j".
Der Rest wird automatisch gelöscht.
Grund : Aufgrund des Schwachsinns der EU ist die Liste Gigantisch lang
und sie versaut mir meine Vita. ;) Manchmal finde ich Werbung sogar gut.
Das Problem : Wenn ich für meine Schwester / Freundin etc. was suche,
bekomme ich danach nur Frauenzeug angezeigt. Und es gibt nur 2
"Feiertage" wo ich für das weibliche Geschlecht Geld ausgeben will/soll.
Als kleines Zusatzmodul plane ich noch ein Abgleich mit meinen
Bookmarks. Wenn als Bookmarks dann "haben_will" automatisch auf "ja"
Εrnst B. schrieb:> Hmm:>>> browser.sessionstore.interval> ändert nix?
Steht bei mit auf einer Stunde, aber die Cookiedateien werden nicht
aktualisiert.
Εrnst B. schrieb:> Da würde ich mit einer WebExtension/Add-On rangehen.> Vorteil: du kriegst alle Cookies, und kannst sie in dem Moment, in dem> sie gesetzt/geändert werden, loggen.
Kann eine Extension auf das System zugreifen? Wenn ich Cookies zB in
eine DB schreiben will (also nichts von Firefox, sondern zB in eine
MySQL), geht das überhaupt mittels Extension?
Gustaf schrieb:> Kann eine Extension auf das System zugreifen? Wenn ich Cookies zB in> eine DB schreiben will (also nichts von Firefox, sondern zB in eine> MySQL), geht das überhaupt mittels Extension?
Ausprobieren.
Ich weiß aber das ich bei meinen via VB + Co. angesprochenen
SQLlite-DB's problemlos während des Laufes des Programm auf die
Datenbank zugreifen und Änderungen machen kann.
Mein Tipp. Ziehe dir ein SQL-Manager z.b. SQLITESTUDIO runter. Kopiere
die DB in Sicherheit, dann greif darauf zu und teste es damit. Weil ich
kann mit den Manager problemlos die Datei lesen, während des Betriebs
von FF.
Kleiner Tipp am Rande.
Du kannst fast jede Datei (auch welche die im Zugriff sind) kopieren. Es
wird dann halt kopiert was da ist.
Einzige Ausnahme die Datei muss Bytes haben im Dateimanager also Mehr
als 0 Bytes im Dateimanager anzeigen.
Eine eigene Frage?
Dieser Thread ist über 4 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.