/ / Flask sesje po stronie klienta - python, flask, zmienne sesji

Sesje klienckie po stronie klienta - python, flask, session-variables

Zaczynam uczyć się języka Python Kolba platforma aplikacji internetowych, wciąż na etapie uczenia się, więc proszę o wyrozumiałość.

Zastanawiam się, jak odpowiednie są sesje po stronie klienta dla celów bezpiecznych aplikacji internetowych. Z tego, co się wydaje, istnieją poważne obawy:

  • Ponieważ wszystkie zmienne sesji są serializowanei zakodowane w pliku cookie, należy uważać na ilość przechowywanych tam danych, aby utrzymać rozmiar danych HTTP przesyłanych tam iz powrotem w rozsądnym rozmiarze.
  • Nie jestem pewien, czy identyczne zestawy kluczy / wartości mająidentyczne wartości zserializowane, ale jeśli „pobiorę i przechowuję wartość pliku cookie w jednej sesji”, nie mogę „karmić” tej samej, choć zaszyfrowanej, wartości z powrotem w innej sesji w innym czasie i przekonać serwer, że są to prawdziwe wartości zmiennych sesji ? To, co użytkownik może zrobić w ciągu jednego dnia, nie oznacza, że ​​ta sama rzecz jest dozwolona w innym dniu. A jeśli te wartości zmiennych sesji muszą być przez cały czas zabezpieczone, to po co w ogóle trzymać je w „pamięci podręcznej”? Wówczas służą niewiele więcej celowi niż pozwala nam używać ładnych GET URL-i (tj. Zamiast brzydkiego ciągu zapytania z niektórymi parametrami)

Być może więc szukam odpowiedzilimity sesji po stronie klienta Flask, biorąc pod uwagę możliwy atak man-in-the-middle (oczywiście w przypadku niezabezpieczonych sesji http) lub zaawansowanego złośliwego użytkownika, który przechowuje wartości plików cookie w celu późniejszego ich przekazania.

Odpowiedzi:

1 dla odpowiedzi № 1
  • Nie sądzę, że musisz się martwić o rozmiar, ponieważ plik cookie i tak nie może przechowywać więcej niż 4KB danych. Wątpię, czy łatwo znajdziesz się w pobliżu.

  • Jest tak samo bezpieczny, jak inne sesje, ponieważ prawdopodobnie możesz wziąć PHPSESSID cookie do innej przeglądarki i niech działa tak, jak możesz to zrobić. Nic nie stoi na przeszkodzie. Istnieją jednak obejścia tego problemu, możesz je wygasnąć po upływie określonego czasu. Widzieć to pytanie na przykład. Zawiera przydatne odpowiedzi dotyczące tego problemu.

Zawsze możesz użyć sesja bazy danych jeśli chcesz. Jestem pewien, że są też inne implementacje, które można znaleźć.

Edytować: Tutaj są inni.