login  Naam:   Wachtwoord: 
Registreer je!
 Forum

multiple user script

Offline Gust - 18/04/2014 16:43
Avatar van GustMySQL interesse Ik zag dit script (javascript en html).
Weet er iemand waar ik zo'n script in php kan vinden?

5 antwoorden

Gesponsorde links
Offline Thomas - 18/04/2014 17:03
Avatar van Thomas Moderator Loginfunctinaliteit met JavaScript lijkt mij volstrekt onveilig, omdat iedereen de JavaScript kan inzien.

Heb je al gegoogled op "PHP login script" of gekeken in de tutorials of tussen de scripts op deze website?

Vaak komen dit soort scripts met voorgebakken functionaliteit in een voorgebakken layout. Wat mij veel beter lijkt is dat je je bekend maakt met de factoren die een rol spelen bij een loginmechanisme. Je kunt dan namelijk een oordeel vellen over hoe veilig zo'n script is. Persoonlijk zou ik nooit klakkeloos ergens code vandaan trekken en gebruiken zonder deze goed te bestuderen, zeker wanneer het om dit soort functionaliteit gaat. Maar je moet dan dus wel weten waar je op moet letten.

Daarnaast lopen de toepassingen van een loginmechanisme sterk uiteen. Wat voor gegevens wil je afschermen, en hoe goed moeten deze beveiligd zijn? Dit zijn overwegingen die je mee moet nemen bij het maken van een goede (en onderbouwde) keuze.

Loginfunctionaliteit komt in allerlei uitvoeringen voor: van supersimpel (en redelijk veilig) tot zeer complex (en superveilig). Nog even los van de techniek kun je je ook de volgende functionele zaken afvragen, met andere woorden, wat moet deze allemaal kunnen:
- moeten gebruikers zelf in staat zijn zich in te schrijven? zoja, hoe verloopt de inschrijfprocedure?
- moet er een gebruikersbeheer zijn?
- moeten gebruikers in staat zijn hun wachtwoord te resetten?
- moeten gebruikers eens in de zoveel tijd hun wachtwoord veranderen?
- moet het wachtwoord voldoen aan bepaalde criteria (lengte, karakters, speciale tekens, hoofdlettergevoeligheid)?
- welke informatie van een gebruiker moet opgeslagen worden?
- welke informatie van een gebruiker identificeert deze (welke informatie is uniek)?
- kan een gebruiker afhankelijk van zijn status verschillende dingen wel/niet doen (is er dus een soort van rollen- en rechtensysteem wat hier aan gekoppeld is, en, meer technisch, hoe is dit gekoppeld aan andere (beheer)functionaliteit)?
- vind er logging van foute inlogpogingen plaats?
- is er een limiet aan het aantal keren dat een gebruiker een inlogpoging kan doen?
- ...

Ook kunnen deze vragen je helpen bij het maken van een keuze.

Met het verzoek "geef mij een loginscript" kan ik je niet echt helpen, simpelweg omdat ik niet weet wat je zoekt, of waar je het voor wilt gebruiken.
Offline Gust - 18/04/2014 17:54 (laatste wijziging 18/04/2014 17:56)
Avatar van Gust MySQL interesse Net omdat het voorbeeld onveilig is, zoek ik iets in php.

Ik heb al de hele tijd zitten googlen naar een veilig multiple php script, maar niets gevonden. Zelf ben ik niet in staat iets te schrijven. enkel aanpassen.

Ik zoek hetzelfde systeem als bij dat javascript, waarbij je in de code een loginnaam en paswoord plaatst en zegt naar welke locatie deze moet gaan. Gebruikers mogen zich dus niet zelf kunnen inschrijven.
Offline Thomas - 18/04/2014 22:40
Avatar van Thomas Moderator Maar als je dan 3 pagina's hebt (Henk.php, Piet.php, Klaas.php) hoe voorkom je dan dat Henk naar Piet.php surft? Uiteraard kun je je pagina e057d4ea363fbab414a874371da253dba3d713bc.php noemen, maar dit soort "security through obscurity" is geen goed ontwerpprincipe.

Waarom geen loginstructuur die echt "onthoudt" wie een gebruiker is en dus ook uniek kan worden geidentificeerd? Dan heb je aan één beveiligde pagina (zeg user.php) genoeg. Of dit nu Henk, Piet of Klaas is.

Als ik jou was, zou ik mij eens verdiepen in sessies (in PHP). Hier zijn echt zat (gerelateerde) tutorials over. In de rubriek PHP tutorials staan er een hoop.

En als je kant-en-klaar wilt, neem dan een gratis opensource pakket zoals Joomla, Drupal of een ander CMS of framework... maar daar heb je ook een leercurve, dus je komt er niet omheen je te verdiepen in (wat voor) materie (dan ook).
Offline Gust - 19/04/2014 10:44
Avatar van Gust MySQL interesse Het is de bedoeling dat ik dit met zelfgemaakte pagina's kan, en niet steeds met een CMS moet beginnen. Misschien met een database en een if-else systeem?

Offline Thomas - 19/04/2014 13:54
Avatar van Thomas Moderator Okay.

HTTP is een stateless protocol. Dit wil zeggen dat het niets onthoudt en niets voor je bijhoudt bij de navigatie tussen pagina's. Dit zul je dus op een andere (en veilige) manier moeten doen. Dit gebeurt meestal via een sessie. Een sessie kun je misschien nog het beste vergelijken met een "serverside cookie", oftewel dit is een persoonsgebonden bestand waarin je tijdelijk (gedurende een bezoek aan een website of langer, over meerdere pagina's) informatie kunt bijhouden. Een sessie is inhoudelijk niet toegankelijk voor een gebruiker, dit is verder afgeschermd. Sessies in PHP zijn toegankelijk via de superglobal $_SESSION (dit is een array). Je zou dus via een formulier eenmalig een gebruikersnaam en een wachtwoord kunnen versturen naar een script, die deze vervolgens controleert in een lijst (array) of database of iets anders. Mochten de gegevens kloppen, zou je informatie weg kunnen schrijven in $_SESSION, bijvoorbeeld een gebruikersnaam en/of een of andere index die aangeeft dat je ingelogd bent. Vervolgens hoef je -in zijn simpelste vorm- in andere scripts alleen maar te controleren op die gegevens in $_SESSION.

Zodra je met authenticatie aan de slag gaat wordt de veiligheid van je scripts nog belangrijker dan het (eigenlijk) al was. Daarom is het belangrijk dat je jezelf vertrouwd maakt met de materie en je daarbij "goede" programmeergewoonten aanleert. Het idee van hierboven (een loginmechanisme met gepersonificeerde pagina's) klinkt mij niet als heel erg generiek in de oren (nog even los van veiligheid). Zoals ik al eerder aangaf is het waarschijnlijk een beter idee om één generieke pagina te maken die vervolgens gebruikers-specifieke content kan serveren, dit zou je kunnen doen met de informatie die je bijhoudt in $_SESSION.

Ik raad je (nogmaals) aan om eens wat tutorials door te nemen om je vertrouwd te maken met de concepten en mogelijkheden. Ondanks het feit dat de informatie hierin soms ietwat gedateerd is, kun je hier nog steeds veel van opsteken. Dit vereist wel een inspanning van jouw zijde. Als je vragen hebt over een concrete uitwerking kun je daar vragen over stellen maar deze site bevat al -met enig zoekwerk- genoeg informatie om een begin te maken.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.17s