authenticatie.php schrijven voor include

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Waterspout
  • Registratie: November 2006
  • Laatst online: 10-03-2021
Hey lezers en PHP fans,
ik ben momenteel bezig met een php script waarbij ik een authenticatie script probeer te schrijven. Ik heb een inlog met password gemaakt op de hoofdpagina die inde.php heet. Na na de (enige) juiste combinatie te hebben ingevoerd krijg je de mogelijkheid om via een link door te gaan naar een admin afdeling, ik heb daarvoor momenteel index1.php voor gekozen.
Maar het gevaar is natuurlijk als ik verder geen beveiliging in index1.php heb opgenomen dat idereen die in de browser index1.php intoets doodleuk op mijn admin pagina komt.
Ik wil dit oplossen door een include in te bouwen in de index1.php die verwijst naar authenticatie.php (of iets dergelijks). Als iemand hoe dan ook op index1.php komt moet er gecontroleerd worden of username en password overeen komen met hetgeen wat in het authenticatiescript staat.
Heeft iemand een idee hoe ik dit het beste kan schrijven. Het zal waarschijnlijk maar een klein scriptje zijn. Een script waarbij mijn username en password al in vermeld staan, neem bijvoorbeeld 2 keer admin.
Ik heb verschillende PHP authenticatie scripts onder de loep genomen, maar ik weet gewoon niet hoe ik dit kan toe passen op deze situatie.

De link naar de test site = http://www.ferryschmets.nl/index.php
2 * admin om te testen

Ik ben een beginnende PHPér dus hulp kan ik nu zeker goed gebruiken. Alvast bedankt!
Greetz Ferry (Waterspout)

Acties:
  • 0 Henk 'm!

Verwijderd

sessies zijn je vriend !

Acties:
  • 0 Henk 'm!

  • DrClaw
  • Registratie: November 2002
  • Laatst online: 21-08 21:39
usernames en passwords horen niet thuis in een php file, tenzij in een config filetje om bijvoorbeeld een database te benaderen.

wat vind je van het volgende idee:
op index.php vraag je om username en password. je berekent dan via een functie adhv login en password een lange characterstring.

als die string in je databaseje zit, dan zet je die lange string in een 2e databaseje, verbonden aan de waarde +10 minuten. die lange string geef je ook mee in een cookie ofzo, of als sessionid, aan de client.

in index1.php controleer je die string tegen de strings in de database, voor elke actie die je doet via index1.php.
bestaat de string niet in de database, dan mag je ueberhaupt niet index1.php gebruiken en kom je op index.php uit.
bestaat de string wel, dan wordt gekeken naar de +X minuten waarde.. is de tijd nog niet verstreken, dan reset je die waarde weer op +10 minuten, en mag de volgende actie door de gebruiker gedaan worden.
is de tijd wel verstreken, verwijder dan de string en de +X minuten, en verwijd de gebruiker weer terug naar de inlogpagina.

Acties:
  • 0 Henk 'm!

Verwijderd

Authenticatie waarden teruggeven naar een cookie , of het teruggeven van de session-Id .. lijkt me toch een beetje onveilig op gebied van cross site hijacking. Opzich is het natuurlijk wel bruikbaar.

Wat ik meestal doe met sessies

Bij elke request dat een browser doet,

verifieren >> host
verifieren >> gebruiker (user-Id)
verfifieren >> pass hash (md5)
verifieren >> Time to live (bijv na 15 minuten automatich uitloggen)
....er zijn nog waarde die je kunt testen

Als een van die dingen niet overeenkomen met de originele waarde (toen de sessie werd gestart, en de gebruiker correct werd authenticeert), terug sturen naar de startpagina.

Ik hou meestal een record bij in de database om dit soort test waarden bij te houden,
daar kun je nadien ook leuke analyzes meedoen, welke gebruiker welke pagina bekijkt en hoelang, etc.....

Ook kun je proberen alle onderliggende paginas af teschermen door ze te benaderen via de index.php
vb

switch $_GET/POST/SESSION[page]
case start = include(./start.php)
case admin = include (./admin.php)
case default = include (./start.php)

Als je id en pass wilt hardcoden in php, en er verder weinig tijd wilt insteken, kun je beter de logica in je admin page steken, en daar vragen om opnieuw in te loggen.

Er is veel geschreven over sessions en er zijn ook tamelijk veel standard functies voor...
>> http://us3.php.net/session

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Move naar Programming ;)

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

waarom zet je je admin code in dezelfde map als de rest van de code? Als je dat netjes scheidt in een aparte dir kan je daar een .htaccess opzetten en ben je klaar :)

Stop uploading passwords to Github!

Pagina: 1