Próbuję dowiedzieć się, czym właściwie są „podpisane pliki cookie”. W sieci nie ma zbyt wiele, a jeśli spróbuję:
app.use(express.cookieParser('A secret'));
Ale nadal ... Pliki cookie są nadal w 100% normalne w przeglądarce i nie bardzo wiem, co to jest „podpisane” (miałem nadzieję, że „zobaczę” jakieś dziwne strony na kliencie, coś w rodzaju danych zaszyfrowanych przy użyciu „Sekret” jak sól?)
Dokumentacja mówi ( https://github.com/expressjs/cookie-parser ):
Przeanalizuj nagłówek Cookie i wypełnij
req.cookies
obiektem z kluczem według nazw plików cookie. Opcjonalnie można włączyć obsługę podpisanych plików cookie, przekazującsecret
ciąg, który przypisuje,req.secret
aby mógł być używany przez inne oprogramowanie pośredniczące.
Czy ktoś wie?
Merc.
express.cookieParser()
?res.cookie('somethingElseAgainAndAgain', 'signed? Maybe' );
ale ... Wątpię, żeby to podpisywał! Oprogramowanie pośredniczące cookieParser () jest gotowe do analizowania podpisanych plików cookie, ale zdecydowanie nie robię tego ustawienia prawidłowo ... czy muszę je podpisywać ręcznie ...?(res.cookie(name, value, { signed: true }))
. Zgłaszanie brakującego "szczegółu" z dokumentacji ...If it does not match, then it will give an error.
Nie jest to błąd . Tylko request.signedCookie dla tego klucza nie jest ustawiony . Więc bardziej jak ignorowanyTak, jak wspomina emostar, ma to po prostu zapewnić, że wartość nie została zmieniona. Jest umieszczany w innym obiekcie (req.signedCookies) w celu rozróżnienia między nimi, umożliwiając deweloperowi wykazanie zamiaru. Gdyby były przechowywane w req.cookies wraz z innymi, ktoś mógłby po prostu stworzyć niepodpisany plik cookie o tej samej nazwie, zniweczając cały ich cel.
źródło
Szukałem dość obszernie w celu znalezienia dobrej odpowiedzi na to pytanie ... A patrząc na kod źródłowy
cookie-signature
, który jest używany przezcookie-parser
do podpisywania podpisanych plików cookie, lepiej zrozumiałem, czym jest podpisany plik cookie.val
jest oczywiście wartością pliku cookie isecret
jest ciągiem znaków, które dodajesz jako opcjęcookie-parser
https://github.com/visionmedia/node-cookie-signature/blob/master/index.js#L16
źródło
Użyłem cookie-parser w wersji 1.4.4.
Mogę dodać podpisane pliki cookie i podpisane pliki cookie zaszyfrowane w przeglądarce.Jeśli spróbuję edytować podpisany plik cookie za pomocą editThisCookie (wtyczka Chrome), to analizator plików cookie wykrywa zewnętrzną zmianę i ustawia wartość false jako wartość.
Nagłówek odpowiedzi w przeglądarce, wyświetlany jako
Uzyskaj podpisany plik cookie
https://gist.github.com/dineshbalaji/607d166f0240f932a5cb02099b0ece4c
źródło