Wpis z mikrobloga

Gdzie trzymacie token JWT w aplikacjach typu SPA (np. Angular, React)?

localStorage - jak będzie atak XSS, to atakujący wykradnie token lub wykona CSRF
ciastka HTTP only - możliwy do wykonania atak CSRF (bo kto stosuje tokeny anty-CSRF w REST API?)

W przypadku aplikacji mobilnych ciastka odpadają (chyba że to PWA).

Obie metody można zabezpieczyć, np. nie trzymać tokenu w localStorage, ale w zmiennej lokalnej, ale sesja się skończy po odświeżeniu strony i trzeba się ponownie logować. W przypadku ciasteczek można sprawdzać Referrer, ale to jest zawodny sposób, bo przeglądarka tego nagłówka wcale nie musi wysyłać. Jakieś inne pomysły? #jwt #javascript #angular #programista15k
  • 3
@SendMeAnAngel: kwestia tego na jakim poziomie jest wymagane security w twoim projekcie, jesli nie robisz np aplikacji bankowej to nie powinienes sie tym przejmowac, ciezar lezy po stronie uzytkownika w przeciwnym wypadku zajmie sie tym BE, walidujac token z fingerprintem/ip/hwid usera opcji jest wiele lacznie z regeneracja tokenu czy krotka sesja (wygoda uzytkownika w przypadku duzego bezpieczenstwa nie jest priorytetem)
@SendMeAnAngel: localStorage, nie masz co się przejmować tym, po prostu zabezpieczaj appkę przed xss, wszędzie escapuj OUTPUT gdzie się da, nie input bo bazując na tym drugim tylko prędzej czy później się jebniesz, albo ktoś wymyśli taki input który "przejdzie"