Hoe programmeer jij?
Bijvoorbeeld:
Je gaat in een database een tabel maken waar later de gebruikers in komen te staan van je login systeem.
Zou je nou een aparte tabel maken voor bijvoorbeeld de geblokkeerde gebruikers, met (natuurlijk) een id, de datum van de start van de blokkade, de berekende datum van het einde van de blokkade, de reden, de gebruikersnaam.
Dan komen al dingen waar ik soms over twijfel: zou ik naast het gewone id van de rij, ook nog het id van de gebruiker erbij opslaan?
Zou ik uberhaupt een aparte tabel hiervoor maken, en niet gewoon aparte kolommen maken in de gebruikers tabel?
Zou ik de datum van de afloop van de blokkade al vooraf berekenen en opslaan, of gewoon de startdatum opslaan en bij elke login d.m.v de startdatum de einddatum berekenen?
En dan nog bijvoorbeeld dit:
Ik wil controleren of iemand is ingelogd en of dus de pagina mag worden geladen.
Wat doe ik als eerste?
- De sessie controleren
- Controleren of in de database staat of de gebruikersnaam/id wat in de sessie staat, is ingelogd.
- Controleren of het IP-adres hetzelfde is als in de database staat, en in de sessie
- Controleren of er niet 2 of meerdere rijen in de database tabel met sessies staan.
En wat zou ik bijvoorbeeld doen, of aan de gebruiker laten zien als er iets niet goed is?
Stel dat het IP niet hetzelfde meer is als in de sessie of in de database, dan is het toch normaal als deze gebruiker wordt uitgelogd? of moet ik juist de sessie en de database updaten?
En als de gebruiker is uitgelogd, welke melding moet ik dan geven?
"Je werd uitgelogd vanwege een fout, je kunt opnieuw inloggen" of zo iets?
Hoe doen jullie het / zouden jullie het doen?
Gewijzigd op 23/11/2012 17:27:46 door Mark Hogeveen
Stel iemand logt in via een mobiel netwerk, dan moet hij vaak opnieuw inloggen, want die ip's veranderen vaak.
een login is niet meer of minder dan een match tussen username en password, klopt die maak je een session aan. Zo niet dan is het fout .
Verder controleer je op iedere beveiligde pagina of de session bestaat.
ook snap ik niet waarom je apparte id voor een user zou willen. een uniek id wat tijdens het registreren word aangemaakt is voldoende.
Het opslaan van het ipnummer heeft alleen belang voor de lopende sessie maar kan ook tot fouten leiden. Sommige smartphone systemen hebben voor elke webcall een ander/nieuw ipnummer, zinloos dus om met ipnummers te werken. Alles gewoon op username/password programmeren. Je kan het ipnummer opslaan ter informatie maar het wordt steeds minder zinvol om er controle en beveiliging aan te hangen.
Gewijzigd op 23/11/2012 22:12:52 door Aad B
IP-nummer is toch wel handig om te gebruiken ivm cookie-hijacking. Als ik de cookie van een ingelogde gebruiker jat kan ik dmv die cookie inloggen op de site als er geen controle op ip-adres is.
Ik doe zelf het volgende (vast ook nog wel voor verbetering vatbaar):
- checken op sessie -> als juiste sessie -> klaar!
- geen juiste sessie? checken op cookie -> als geldige cookie en user komt voor in database met juiste ip-adres -> klaar!
ook geen juiste cookie? -> inlogscherm tonen.
Ik zou geen controle doen op 2 of meer rijen in de sessie-tabel:
Als ik vanuit huis en vanaf het werk inlog op een site wil ik op beide lokaties ingelogd blijven. Doordat deze beide lokaties een ander ip-adres hebben krijg je dan altijd meerdere regels in de tabel.
Het is natuurlijk wel aan te raden om de tabel eens in de zoveel tijd op te ruimen.
Gewijzigd op 23/11/2012 22:31:20 door Frits Katoen