Toon posts:

[Firefox] Hoe end-of-session cookies extern uitlezen? *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Firefox (en de hele meute browsers afgeleid van netscape) bewaren zijn cookies in het bestand cookies.txt.

Er zijn redelijk wat applicaties/libraries die overweg kunnen met de netscape compatible cookies.txt, bijvoorbeeld de perl LWP library en de command line applicatie wget.

Voor test doeleinden wil ik inloggen op een met username/password beveiligde pagina met firefox, zodat firefox de cookie wegschrijft in de cookies.txt en ik deze vervolgens kan gebruiken met wget:
wget --load-cookies=$cookie_file

Niet alle cookies staan echter in dit bestand vermeld. Indien een webpagina een cookie meezendt met een expire date "end of session" zal deze niet in het bestand opgeslagen worden en op het moment van afsluiten verdwijnen.

Is het mogelijk, zonder het zelf schrijven van exotische firefox plugins, om firefox te dwingen elk cookie, onafhankelijk van de expiration date, weg te laten schrijven in cookies.txt?

Trouwens, wget is al even eigenwijs. Deze weigert ook cookies weg te schrijven die eingelijk niet weggeschreven hoeven te worden. De client is toch de gene die daadwerkelijk de touwtjes in handen heeft?

wget:
--save-cookies file
Save cookies from file at the end of session. Cookies whose expiry time is not specified, or those that have already expired, are not saved.

[ Voor 9% gewijzigd door Verwijderd op 13-04-2005 21:33 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Al flink wat eigen onderzoek; dat is wel netjes :) Ik pas evenwel je topictitel nog even aan :) Het gedrag wat je beschrijft is overigens niet vreemd; end-of-session cookies worden in het geheugen bewaard :)

[Firefox] cookies.txt > [Firefox] Hoe end-of-session cookies extern uitlezen? *

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Topicstarter
Vreemd is dit gedrag niet, jammer is het wel.

Ik heb verder helemaal niets meer kunnen vinden, dus ik ben bang dat ik toch moet gaan proggen. Ik heb een stukje code gevonden uit de viewcookies extension voor firefox wat wel bruikbaar zal zijn:

(het is weliswaar geen php, maar de syntax highlighting doet het prima voor javascript)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function load() {
    var cookieTree = document.getElementById("viewcookies-tab-tree");
    cookieTree.view = cookieTreeView;
    cookieTreeView.setColumns( ["cookie-name", "cookie-value", "cookie-domain", "cookie-path", "cookie-expires"] );
    var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfaces.nsICookieManager);
    var cookies = [];
    var domain = opener._content.location.hostname;
    var path = opener._content.location.pathname;
    var iter = cookieManager.enumerator;
    while ( iter.hasMoreElements() ){
        cookie = iter.getNext();
        if ( cookie instanceof Components.interfaces.nsICookie && domain.endsWith( cookie.host ) && path.beginsWith( cookie.path ) ) {
            if ( cookie.expires==0 ) {
                expires = "Session"
            } else {
                var d = new Date( cookie.expires*1000 );
                expires = d.toLocaleString();
            }
            cookies.push( [cookie.name, cookie.value, cookie.host, cookie.path, expires] );
        }
    }
    cookieTreeView.setRows( cookies );
}

Maar dit vergt weer net wat meer geduld dan een vinkje of een optie in de prefs.js. Jammer.

Bedankt trouwens voor de topic titel change.