Het login systeem

Op iedere pagina heb je geaddslashed, of ge mysql_real_escaped,
dus je loginsysteem is veilig, toch?
Nee.

Een login systeem is op verschillende manieren te omzeilen.
Ten eerste: Session highjacking, hierbij steelt de aanvaller de sessie van de gebruiker, hierdoor kan php de gebruiker en de aanvaller niet uit elkaar houden,
en zal de aanvaller op het account van de gebruiker ingelogd zijn, zonder het wachtwoord te weten.

Ten tweede: md5 kraken. Het klinkt misschien stom, maar je wilt niet weten in hoeveel scripts je gewoon het wachtwoord (welliswaar gemd5'd) in de cookies ziet staan. MD5 IS NIET VEILIG!
het kost voor een aanvaller ongeveer 2 minuten om een wachtwoord te vinden wat dezelfde hash oplevert als jouw wachtwoord. hiermee kan de aanvaller dus gewoon inloggen.
(voor de mensen die denken: zo stom kan iemand niet zijn! de site waar je nu op zit is het levende voorbeeld!)


De oplossing voor het eerste probleem is opzich redelijk simpel:
zet het ip van de gebruiker in de sessie, controleer op iedere pagina of de ip's nog overeenkomen, zo nee, uitloggen die hap.
(en nu geen gezeur over dynamische ip's, die veranderen heus niet terwijl je OP internet zit, anders zou het hele nut van een ip weg zijn, namelijk dat een computer daarop te bereiken is.)

Het tweede punt is natuurlijk nog makkelijker te voorkomen.
Zet gewoon geen passwords in een cookie, klaar uit.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. De absolute basis
  3. Het login systeem
  4. Cross Page Command Execution
  5. Timing exploits
  6. xss
  7. conclusie

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.