Vraag & Antwoord

Webprogrammeren & scripting

authorisatielevels in php en mysql

4 antwoorden
  • Een opdrachtgever wil vier inlogniveaus op z'n website. Een administrator die alles mag, een coördinator die alleen roosters mag bekijken, een administratief medewerker die tekst op de website mag wijzigen en ook de roosters mag wijzigen en een vierde categorie met overig personeel. Die mogen alleen lezen. Ik heb hier helemaal geen ervaring mee en ik vroeg me af hoe anderen dit doen op hun site(s). Controleer je op iedere pagina de gebruikersnaam en authorisatielevel? Of maak je voor ieder level aparte pagina's? Of is er een andere manier? En wat zijn aandachtspunten of valkuilen waar ik op moet letten?
  • [quote:ef1a33b345="yolk2003"]Controleer je op iedere pagina de gebruikersnaam en authorisatielevel[/quote:ef1a33b345] is een manier die ik zowiezo toepas, en dit moet je ook blijven doen. En aan de hand van deze controlle maak je jouw pagina's op. Vaak kan je met 1 pagina toe, waarin je jouw authorisatie-levels toepas. Ik doe dit mbv PHP, ASP is natuurlijk ook een mogelijkheid. Verder kan je (als je rechten heb om het aan te passen en SQL gebruik) diverse gebruikers aanmaken met rechten op select, update, drop, delete etc. Een ander punt (die ik nog niet heb gebruikt) zou '.htaccess' zijn, ook hiermee kan je gebruikers op nivo blokeren. Maar de belangrijkste is het eerste wat ik al aanhaalde. Valkuil... alle webdesign staat en valt met controlle, controlle en nog eens controlle wat die gebruiker doet, want je weet niet wie het is en wat hij wil.
  • [quote:13ad59eceb="yolk2003"]Een opdrachtgever wil vier inlogniveaus op z'n website. Een administrator die alles mag, een coördinator die alleen roosters mag bekijken, een administratief medewerker die tekst op de website mag wijzigen en ook de roosters mag wijzigen en een vierde categorie met overig personeel. Die mogen alleen lezen. Ik heb hier helemaal geen ervaring mee en ik vroeg me af hoe anderen dit doen op hun site(s). Controleer je op iedere pagina de gebruikersnaam en authorisatielevel? Of maak je voor ieder level aparte pagina's? Of is er een andere manier? En wat zijn aandachtspunten of valkuilen waar ik op moet letten?[/quote:13ad59eceb] 1. Een gebruiker moet op je website inloggen. 2. Je onthoudt in de sessievariabelen de gegevens van deze gebruiker. Te denken valt aan variabelen: IsGebruikerIngelogd, Gebruikersnaam, Rechten, etc. Bij het (niet) succesvol inloggen zet je deze variabelen. Je zou je ook nog kunnen afvragen wat je van de rechten wilt opslaan? - De toegestane rechten van de gebruiker, of - De niet-toegestane rechten van de gebruiker, of - Tot welke groep de gebruiker behoort (coordinator, administratie, etc.) In dit geval zou ik kiezen voor de groepen, anders zou je het denk ik te ingewikkeld maken. Voor de rechten zou je bijvoorbeeld constanten kunnen gebruiken: GROEP_ADMINISTRATOR = 1 GROEP_COORDINATOR = 2 GROEP_ADMINISTRATIE = 3 GROEP_OVERIG = 4 3. Het hangt van de opbouw van je pagina's af hoe je dit het beste kunt opbouwen. Als je bijvoorbeeld een weergave en een wijzig-modus hebt, dan heb je in de meeste gevallen ook meedere schermen en kun je vrij gemakkelijk de wijzig-modus afschermen d.m.v. autorisatie. Bij iedere pagina die opgevraagd wordt controleer je de rechten pseudo code: [code:1:13ad59eceb] if (IsGebruikerIngelogd == true) { // ok. is ingelogd if (!($sessie['RECHTEN_GROEP'] == GROEP_ADMINISTRATOR)) { die('geen rechten om deze pagina te tonen.'); } } else { // niet ingelogd. Terug naar inlogpagina } // toon pagina [/code:1:13ad59eceb]
  • Zoek ook eens op het begrip RBAC ([b:562e14bdd3]R[/b:562e14bdd3]ole [b:562e14bdd3]B[/b:562e14bdd3]ased [b:562e14bdd3]A[/b:562e14bdd3]ccess [b:562e14bdd3]C[/b:562e14bdd3]ontrol). Dit is een standaard principe waarop je je autorisatie systeem kan bouwen (van simpel tot heel uitgebreid). Met een beetje zoeken moet je - denk ik - ook nog wel wat implementaties in PHP kunnen vinden.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.