Przykład naprawy sesji PHP i poprawki
Moje pytanie dotyczy tego podsumowania dotyczącego naprawy sesji:
Alice ma konto w bankuhttp://unsafe.com/. Niestety, Alice nie jest zbyt mądra w kwestii bezpieczeństwa.
Mallory chce odebrać pieniądze Alice z banku.
Alice ma rozsądny poziom zaufania do Mallory'ego i odwiedzi linki, które wysyła jej Mallory.
Mallory to ustaliłhttp://unsafe.com/ akceptuje dowolny identyfikator sesji, akceptuje identyfikatory sesji z ciągów zapytań i nie ma walidacji zabezpieczeń.http://unsafe.com/ nie jest więc bezpieczny.Mallory wysyła Alice wiadomość e-mail: „Hej, sprawdź to, jest fajna nowa funkcja podsumowania konta w naszym banku, http: //unsafe.com/? SID = I_WILL_KNOW_THE_SID”. Mallory próbuje ustalić SID na I_WILL_KNOW_THE_SID.Alice jest zainteresowana i odwiedzahttp://unsafe.com/?SID=I_WILL_KNOW_THE_SID. Pojawi się zwykły ekran logowania i zaloguje się Alice.Wizyty Mallory'egohttp://unsafe.com/?SID=I_WILL_KNOW_THE_SID a teraz ma nieograniczony dostęp do konta Alice. (kredyt: RichieHindle)Pytania:
P1 - Czy istnieje sposób jawnego uniemożliwienia stronie zaakceptowania dowolnego identyfikatora sesji?
P2 - Nie używam zmiennej $ _GET w mojej witrynie, więc czy istnieje sposób, aby zapobiec akceptowaniu identyfikatorów sesji z ciągów zapytań?
Uwagi: Używam php 5.4.3 z SSL i użyję session_regenerate_id ..