Czy istnieje sposób na odczytanie bezpiecznego pliku cookie za pomocą JavaScript?
Próbowałem to zrobić za pomocą document.cookie
i, o ile widzę w tym artykule o bezpiecznych plikach cookie i fladze HttpOnly , nie mogę w ten sposób uzyskać dostępu do bezpiecznego pliku cookie.
Czy ktoś może zaproponować obejście?
javascript
security
cookies
tzam
źródło
źródło
Odpowiedzi:
Różne przeglądarki umożliwiają różne środki bezpieczeństwa, gdy ustawiona jest flaga HTTPOnly . Na przykład Opera i Safari nie uniemożliwiają zapisywania w pliku cookie przez javascript. Jednak czytanie jest zawsze zabronione w najnowszych wersjach wszystkich głównych przeglądarek.
Ale co ważniejsze, dlaczego chcesz czytać
HTTPOnly
plik cookie? Jeśli jesteś programistą, po prostu wyłącz flagę i upewnij się, że testujesz swój kod pod kątem xss. Jeśli to możliwe, radzę unikać wyłączania tej flagi.HTTPOnly
Flag i „bezpieczna flaga” (co wymusza cookie być przesyłane przez https) powinny być zawsze zestaw.Jeśli jesteś atakującym , chcesz przejąć sesję . Ale jest łatwy sposób na przechwycenie sesji pomimo
HTTPOnly
flagi. Nadal możesz jeździć na sesji bez znajomości identyfikatora sesji. Robak MySpace Samy właśnie to zrobił. Użył XHR do odczytania tokena CSRF, a następnie wykonania autoryzowanego zadania. Dlatego osoba atakująca może zrobić prawie wszystko, co może zrobić zalogowany użytkownik.Ludzie zbytnio wierzą w
HTTPOnly
flagę, XSS nadal można wykorzystać. Powinieneś ustawić bariery wokół wrażliwych funkcji. Takie jak pole zmiany hasła powinno wymagać aktualnego hasła. Zdolność administratora do utworzenia nowego konta powinna wymagać captcha, która jest techniką zapobiegania CSRF, której nie można łatwo ominąć za pomocą XHR .źródło
Celem plików cookie HttpOnly jest to, że nie można uzyskać do nich dostępu przez JavaScript.
Jedynym sposobem (poza wykorzystywaniem błędów przeglądarki), aby skrypt je odczytał, jest posiadanie współpracującego skryptu na serwerze, który odczyta wartość pliku cookie i wyświetli ją z powrotem jako część treści odpowiedzi. Ale jeśli możesz i chciałbyś to zrobić, po co w ogóle używać plików cookie HttpOnly?
źródło
Jednym ze sposobów jest użycie inspektora sieci Safari, a na karcie przechowywania możesz zobaczyć wszystkie pliki cookie, httpOnly lub nie, i po prostu wybrać plik cookie Command + C, aby go skopiować.
Po uzyskaniu ciągu można go łatwo przeanalizować z powrotem za pomocą dowolnego parsera plików cookie lub zwykłego kodu JavaScript.
źródło