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 ..

questionAnswers(4)

yourAnswerToTheQuestion