2013-03-08 8 views
11

C'è qualcosa che davvero non capisco qui:espresso Sessione + angolare: non può accedere biscotto connect.sid

ho Express in esecuzione sul lato server, con la sessione inizializzata.

app.use(express.session({ 
    secret: 'mySecret' 
    }) 
})); 

Come citato in questo post Confusion over session IDs using Connect, invia un cookie connect.sid a qualsiasi richiesta.

Sul lato client, voglio leggere il contenuto di questo cookie, e ci si sente impossibile:

angular.module('myApp.controllers', ['ngCookies','myApp.services']) 
.controller('homeCtrl', function($scope, $cookies) { 
    $cookies['test']='myValue'; 
    console.log($cookies); 
}); 

Quando eseguo questo, ottengo questo oggetto nel registro: Object {test: "myValue"}, mentre se io Vai alla scheda le risorse in debugger Chrome, posso vedere sia i cookie:

Screenshot of Ressources tab in chrome debugger

che cosa sto facendo di sbagliato?

È impossibile accedere ai cookie creati dal server da angolare?

Grazie

risposta

14

Per impostazione predefinita collegano sessione utilizza un cookie HttpOnly (look here).

La lettura del cookie è sempre vietata quando è impostato il flag httpOnly.

provare a disattivare il flag HttpOnly:

app.use(express.session({ 
    secret: 'mySecret', 
    cookie: { httpOnly: false } 
})); 
+1

'cercare collegamento here' è morto. Si prega di aggiornare – CodyBugstein

5

Fare attenzione a che non si fissa un problema, ma la creazione di un altro, e problema peggiore. La bandiera httpOnly viene solitamente utilizzata per difendersi dagli attacchi XSS. Vedere questo link al OWASP per maggiori dettagli: https://www.owasp.org/index.php/HttpOnly

storia interessante su questo qui: http://blog.codinghorror.com/protecting-your-cookies-httponly/

+0

La risposta non è un commento. Ottieni una certa reputazione e quindi utilizza i commenti per tale risposta. –

Problemi correlati