Wpis z mikrobloga

Czy poza logowaniem/wylogowaniem użytkownika są jakieś uzasadnione przypadki, kiedy zmiana id sesji ma sens?

Chciałbym to schować (jako low level) za abstrakcją z założeniem, że jeśli potrzebujesz tego bezpośrednio to robisz coś źle. Na szybko jestem sobie w stanie wyobrazić jakieś podsumowanie zakupów (bez rejestracji konta) identyfikowane sesją, gdzie prywatne dane wyciekają przez session fixation, ale według mnie to już podchodzi pod złą implementację.

#programowanie #backend
  • 8
  • Odpowiedz
@MQs: Jakiś konkretny powód, dla którego nie korzystasz z istniejących wrapperów/libek/frameworków, który by ogarnęły Ci low-level detale?
  • Odpowiedz
@MacDada: To nie XY jeśli o to ci chodzi. Przede wszystkim chcę napisać, a nie użyć w jakimś konkretnym celu. Lubię się bawić problemami tego typu, ale "unknown unknowns" nie przeskoczę. Spotkałeś się z tym, by jakaś biblioteka uwzględniła takie założenie?
  • Odpowiedz
@MQs: No to zacząłbym nie od „pisania po swojemu”, tylko od przejrzenia istniejących rozwiązań.

Np popatrz jak zarządza sesją Symfony. Zajrzyj w kod. Zobacz jak oni to robią. Dużo się nauczysz. Możesz też zobaczyć kiedy oni zmieniają ID, co raczej odpowie na Twoje pytanie.

W końcu kod ten był pisany przez osoby, które „wiedziały co robią”, potem przeglądany przez innych profesjonalistów, a wreszcie przebadany w boju przez duże produkcyjne aplikacje.
  • Odpowiedz
@MQs: Zarządza: np Security Component sesje tworzy, migruje, niszczy, etc. Wiem, bo naciąłem się na bugi z tym związane. Czytałem kod, robiłem issue, PRy -> nieźle poznałem w ten sposób ten kod i koncepty z nim związane.
  • Odpowiedz
@MQs: Na pewno przy uwierzytelnianiu, bo tam się spotkałem, ale gdzie jeszcze to nie wiem.

Pobierz całego frameworka, znajdź metodę co migruje sesję, znajdź jej użycia, poczytaj kod -> będziesz wiedział.
  • Odpowiedz