2013-03-08 9 views
11

Jest coś, czego naprawdę nie rozumiem tutaj:Sesja ekspresowa + kątowa: nie można uzyskać dostępu do pliku cookie connect.sid

Mam wyraźne uruchamianie po stronie serwera, z sesją zainicjowaną.

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

Jak wymieniono w tym poście Confusion over session IDs using Connect, wysyła ciasteczko connect.sid na każde żądanie.

Na stronie klienta, chcę przeczytać zawartość tego pliku cookie, i czuje się niemożliwe:

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

Kiedy uruchamiam to, otrzymuję ten obiekt w dzienniku: Object {test: "myValue"}, natomiast jeśli przejdź na kartę Zasoby w Chrome debugera widzę zarówno ciasteczek:

Screenshot of Ressources tab in chrome debugger

Co robię źle?

Czy nie jest możliwe uzyskanie dostępu do plików cookie wykonanych na serwerach z kątowych?

Dzięki

Odpowiedz

14

Domyślnie połączyć sesja używa cookie HttpOnly (look here).

Czytanie pliku cookie jest zawsze zabronione po ustawieniu flagi httpOnly.

spróbować wyłączyć flagę HttpOnly:

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

'wyglądać here' link jest martwy. Proszę zaktualizować – CodyBugstein

5

należy uważać, że nie są ustalające jeden problem, lecz stworzenie drugiego, a co gorsza problem. Flaga httpOnly jest zwykle używana do obrony przed atakami XSS. Zobacz ten link w OWASP więcej szczegółów: https://www.owasp.org/index.php/HttpOnly

Ciekawa historia o tym tutaj: http://blog.codinghorror.com/protecting-your-cookies-httponly/

+0

Odpowiedź nie jest komentarzem. Zdobądź reputację, a następnie użyj komentarzy do takiej odpowiedzi. –

Powiązane problemy