2015-11-16 17 views
5

Mam aplikację django. Ta aplikacja ma 2 główne pliki cookie, które są zwracane z serwera (csrftoken i sessionid). Ustawiłem flagi SESSION_COOKIE_SECURE i CSRF_COOKIE_SECURE w moim pliku settings.py na True, a gdy sprawdzę wstępną prośbę o zalogowanie się do mojej aplikacji, widzę, że oba te ciasteczka mają ustawioną "bezpieczną" flagę w odpowiedzi z serwera.Czy "żądania" plików cookie muszą być ustawione w bezpieczny sposób?

Podczas sprawdzania plików cookie w mojej aplikacji zauważam, że są "pliki cookie żądania" i "pliki cookie odpowiedzi". "Pliki cookie odpowiedzi" to te, które mają ustawione ich flagi. Pliki cookie żądania nie.

Moje pytanie: czy istnieje sposób na wymuszenie "zażądania plików cookie" w celu ustawienia ich bezpiecznej flagi? Czy to jest nawet kwestia bezpieczeństwa? Mój ruch aplikacji jest nad https, więc wszystkie połączenia między przeglądarką a serwerem będą już zaszyfrowane z tego ...

Odpowiedz

3

To tak naprawdę nie działa w ten sposób ... Flagi są obecne tylko w nagłówku Set-Cookie (odpowiedź).

Gdy klient (przeglądarka) odbiera Set-Cookie nagłówek, to będzie przechowywać flagi wraz z wartością ciasteczka, ale tylko dla własnego użytku (tak, że sama przeglądarka może wiedzieć, kiedy i gdzie wysłać ciasteczko wartość w razie potrzeby).

Nagłówek (żądanie) nie może zawierać flag; jest to tylko lista par <cookie-name>=<cookie-value>, a kiedy Ty (serwer) je otrzymasz, nie masz pewności, że ustawiłeś je sam.
To dlatego, że każda aplikacja pod tą samą nazwą domeny może ustawić pliki cookie dla tej domeny. Na przykład aplikacja działająca pod numerem przyklad.com/foo może ustawić plik cookie dla domeny przyklad.com/bar, a nawet dla domeny innej.example.com.

Jednakże, wyłączając możliwość naprawdę koszmarnych błędów przeglądarki, możesz mieć pewność, że jeśli ustawisz w odpowiedzi flagę "bezpieczne" dla pliku cookie, przeglądarka odbiorcza nie wyśle ​​go przez nieszyfrowane połączenie.
To naprawdę nie jest w 100% gwarantowane, ale jest to naprawdę jedyna dostępna opcja i prawie cała sieć polega na zachowaniu się przeglądarki, więc nie jesteś w tym sam.

Niestety, tak właśnie działają pliki cookie. Przeczytaj oficjalny standard dla nich here, jeśli chcesz dowiedzieć się więcej na ich temat.

Powiązane problemy