Inloggen
Username:
Password:



Password vergeten?
Menu
Home
Forums
Wiki
Script Library
Forum tracker
RSS Feed
Sponsoren
Vacature plaatsen

Aanmelden
Huisregels
Vereniging

Adverteren
Disclaimer
Zoeken

In:
Aantal leden
PHPFreakz kent momenteel 50394 geregistreerde leden.
Opties
Printversie
Inlogsysteem met unieke logins
Inlogsysteem met unieke logins
door pietje puk

Dit artikel is erg verouderd en bevat misschien onjuiste informatie. Kijk op de wiki voor nieuwere artikelen.
Een van de eerste op te lossen problemen bij het schrijven van een webapplicatie is het maken van een authenticatiesysteem: Hoe zorg je ervoor dat je gebruikers veilig kunnen inloggen? Dat hangt natuurlijk af van de gevoeligheid van de gegevens waarmee je werkt. Bouw je een applicatie waarbij creditcard of andere gevoelige gegevens gebruikt worden, dan gebruik je SSL(secure sockets layer) met eventueel certificaten om er zeker van te zijn met wie je zaken doet. Als je dat allemaal niet nodig hebt en van plan bent om een webapplicatie te bouwen met een simpel inlogsysteem dat iets veiliger is als gemiddeld, lees dan verder.

2. Opzet

Er staan hier op PHPFreakz al meerdere inlogscripts. Wat is er nou zo speciaal aan dit systeem? Het speciale is dat bij het inloggen het wachtwoord niet 'clear text' over het internet gaat en dat elke login er anders uitziet zodat het sniffen naar wachtwoorden zinloos is. Om te beginnen hebben we een versleutelingsmethode op de client nodig. Ik heb gekozen voor een in javascript uitgevoerd MD5 hashing algoritme. Een link naar de code staat in het hoofdstuk “Voorbeeldcode”. Het versleutelen van het wachtwoord is echter niet genoeg. Immers, als de server telkens dezelfde hash verwacht dan is dat niet veel veiliger dan het wachtwoord clear text te verzenden. Om dit op te lossen stuurt de server met het inlogformulier een unieke sleutel mee. Deze is elke loginsessie anders. De client stuurt niet de hash van het wachtwoord naar de server maar de hash van de hash van het wachtwoord met de unieke sleutel. Dus: hash(hash(wachtwoord)+sleutel). Hoe dit globaal werkt staat in het volgende hoofdstuk beschreven. Het is simpeler om ( hash(wachtwoord+sleutel) ) te verzenden, maar dan zou het wachtwoord clear text in de database moeten worden opgeslagen. De zogenaamde unieke sleutel is in dit systeem geen gegenereerde willekeurige waarde, maar de timestamp waarop het inlogformulier wordt gegenereerd. Bij het inloggen wordt door de server gecontroleerd of de meegezonden timestamp nieuwer is dan de timestamp waarmee de vorige keer is ingelogd. Bijkomend voordeel is dat je altjid kunt zien wanneer een gebruiker voor het laatst heeft ingelogd.
Een tekortkoming in het systeem is nog het aamaken van een account. Daarbij kan de MD5 hash van het wachtwoord worden afgeluisterd(ge-snift) en met die hash kun je weer een 'geldige' inlogsessie uitvoeren. De beste manier om dit op te lossen is door gebruik te maken van een 'public key' algoritme, zoals het RSA public key algoritme. Onderaan dit artikel staan een aantal links met de code voor dit algoritme voor zowel javascript als PHP script. Ik heb de twee echter nog niet met elkaar samen kunnen laten werken. Ik nodig iedereen uit dit voor elkaar te krijgen en, als het lukt, er een artikel van te schrijven.
Verder wordt in het systeem constant het IP adres in de sessievariabelen vergeleken met het IP adres dat zich met de sessiesleutel meldt om sessie-kapen te voorkomen en wordt de door de gebruiker ingevoerde data ge-escaped voordat het in een sql sessie naar de database gaat.

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Volgende »

Commentaar op dit artikel
TitelDoorDatum
inplaats van md5 sha5? Bjorn Hoefnagels 11-04-2009 10:28
coderen en coderen voor wat? Bjorn Hoefnagels 28-03-2009 01:18
RE: Zal ik dan ook maar even wat van zeggen? topaj php 17-10-2007 13:49
RE: MD5 "echt" gekraakt! topaj php 17-10-2007 13:48
Extra coderen.. Wouter van Eekelen 16-02-2007 12:34
RE: RE: RE: RE: RE: RE: MD5 "echt" gekraakt! Robert Christiaanse 05-12-2006 16:40
RE: RE: RE: Zal ik dan ook maar even wat van zegge Robert Christiaanse 05-12-2006 16:14
coderen Mitch 04-05-2006 18:43
RE: RSA is wel veilig, MD5 niet meer Frans-Willem Hardijzer 04-05-2006 01:10
oeps , dat lijkt mijn idee wel Werner Bodenberger 18-04-2006 01:44
RE: RE: Zal ik dan ook maar even wat van zeggen? Peter Breur 08-03-2006 01:06
error Hans H 21-02-2006 12:07
ice charell schutte 18-02-2006 09:10
RE: RE: RE: RE: RE: MD5 "echt" gekraakt! Elte Hupkes 05-02-2006 09:52
RE: RE: Zal ik dan ook maar even wat van zeggen? jeroen venema 11-01-2006 16:59
Help bas lubbers 22-12-2005 14:55
RE: RE: RE: RE: MD5 "echt" gekraakt! ZeRogue Nomenumbra 06-12-2005 20:47
RE: Zal ik dan ook maar even wat van zeggen? Robbert van den Berg 30-11-2005 22:22
RE: RE: RE: MD5 "echt" gekraakt! nemesis koen 29-11-2005 17:42
RE: EDIT: Zal ik dan ook maar even wat van zeggen? ZeRogue Nomenumbra 23-11-2005 19:06
EDIT: Zal ik dan ook maar even wat van zeggen? PauluZ ! 23-11-2005 12:50
Zal ik dan ook maar even wat van zeggen? PauluZ ! 23-11-2005 12:48
RE: RE: MD5 "echt" gekraakt! Hanno de Jong 22-11-2005 20:46
RE: MD5 "echt" gekraakt! ZeRogue Nomenumbra 21-11-2005 19:32
RE: MD5 "echt" gekraakt! Mar Co 21-11-2005 19:19
RE: RE: RE: RE: MD5 "echt" gekraakt! LOL . StUpIdO . 25-10-2005 18:34
RE: Om me er even mee te bemoeien Robbert van den Berg 23-10-2005 19:49
Om me er even mee te bemoeien Ruud A (Verenigingslid) 07-10-2005 15:22
RE: RE: RE: MD5 "echt" gekraakt! LOL Niek J. 28-09-2005 13:50
RE: RE: RE: MD5 "echt" gekraakt! Alexander Meesters 05-09-2005 22:43
RE: RE: RE: RE: RE: RE: MD5 "echt" gekraakt! zeve Roy van Dam 31-08-2005 21:00
MD5 ** firebirdzz firebird 30-08-2005 13:11
RE: RE: RE: RE: RE: MD5 "echt" gekraakt! zever !! Pieter Van Braband 26-08-2005 01:56
RE: RE: RE: RE: MD5 "echt" gekraakt! zever !!!!!! Wim Syryn 21-08-2005 20:45
RE: RE: RE: MD5 "echt" gekraakt! Leon Keijzer 20-08-2005 23:05
RE: RE: MD5 "echt" gekraakt! Yami King 09-08-2005 17:24
RE: RE: MD5 "echt" gekraakt! firebirdzz firebird 06-08-2005 09:07
RE: MD5 "echt" gekraakt! Jelle Luteijn 05-08-2005 22:56
RE: MD5 "echt" gekraakt! Yami King 05-08-2005 22:46
MD5 "echt" gekraakt! firebirdzz firebird 05-08-2005 19:31
<?php echo '"' . time() . '"' ?> in login Piotr ppppp 19-07-2005 22:20
db_connect.php Ruurd de Vries 28-05-2005 19:28
RE: RE: MD5 is wel zeker veilig stef louwers 19-05-2005 21:31
MD5 Niet veilig? Bullshit! Comgenie .NL 23-04-2005 15:21
pear DB T. den Ouden 21-04-2005 14:53
DB_connect.php sythe veenje 06-04-2005 09:24
inlog koppelen aan persoonid's T. den Ouden 05-04-2005 10:25
foutje? Peter Prins 24-03-2005 14:51
RE: MD5 is wel zeker veilig Jeroen Topsecret 26-02-2005 12:44
Veilig of niet? En hoe dan wel???? Paul Tripany 20-01-2005 11:08
RE: MD5 is wel zeker veilig Martijn Lovers 16-01-2005 00:45
RE: RSA is wel veilig, [MD5 niet meer] Bas Cost Budde 31-12-2004 15:22
Wat is het sql script? Jan Mas 30-10-2004 15:02
RE: MS-SQL Jan Mas 26-10-2004 19:57
error danielle slaman 25-10-2004 16:24
Toppie Sander W. 13-10-2004 23:51
Ander artikel Ferdinant Visser / vtek.nl 08-10-2004 13:01
RE: RE: Leuk bedacht maar het werkt niet. Ferdinant Visser / vtek.nl 08-10-2004 11:11
RE: pear DB Michael Bootsman 15-09-2004 21:52
pear DB Chris Blommendaal 06-09-2004 17:17
RE: RE: MD5 is wel zeker veilig chessere d'angelo 04-09-2004 22:32
RE: MD5 is wel zeker veilig Jorgen 31-08-2004 20:06
RSA is wel veilig, MD5 niet meer Tri Pham 31-08-2004 11:34
RSA is niet veilig Frans-Willem Hardijzer 23-08-2004 01:30
MD5 is wel zeker veilig Frans-Willem Hardijzer 23-08-2004 01:19
@jorgen rAw . 17-08-2004 20:31
RE: Leuk bedacht maar het werkt niet. Mark Snijders 17-08-2004 10:09
RE: Leuk bedacht maar het werkt niet. Voor naam [ www.bruggema.nl ] 16-08-2004 23:06
Leuk, maar... Jorgen 16-08-2004 22:34
Leuk bedacht maar het werkt niet. PgVincent www.yapf.net (Verenigingslid) 16-08-2004 18:24
Toevallig!!! Barry R 15-08-2004 23:18
tegengaan van het bruteforcen probleem? Delete me Delete me 14-08-2004 16:38
RE: RE: Netjes! Maar : md5 / Javascript Martijn Lovers 13-08-2004 23:13
Suggestie met php 5 Mark Kazemier (Verenigingslid) 13-08-2004 22:21
RE: Netjes! Maar : md5 / Javascript rAw . 13-08-2004 19:31
Bugs en sugegsties rAw . 13-08-2004 19:28
Netjes! Maar : md5 / Javascript Remco van Arkelen (Verenigingslid) 13-08-2004 19:27
Recente topics
Website layout hu...
selecteer tekst t...
Weergaven form in...
Website Hulp gezocht
Refresh na invoeren.
Weeknummers selec...
jquery table sort...
Meerdere menu's i...
jQuery slide content
HTML SELECT met 2...
TCPDF geeft é nie...
session_id(); > b...
Nieuwe regel
Variabele analyseren
heleboel foutmeld...
Recente Wiki's
JavaScript: High Performance
MagicQuotes
Escapen
Datamanipulatie
RabbitVCS
Continuous integration
Apache Veilig Maken
Charactersets
Het Wiel Uitgevonden:Formulieren
XSD

Meer wiki ...
Recente Scripts
Unieke `random` n...
twitterPHP 0.1 (a...
CSS minifier
PINI - PHP >>INI<...
Sudoku [StateSolver]
base64 file encoder
Session class

Meer scripts ...
Gehost door
RedKnot Hosting