Ik heb een heel mooi login systeem geimplementeerd aan de hand van Crisp's stappen plan:
crisp in "[PHP] BeveiligingsTips nodig"
Het werkt allemaal perfect. En heb er zelf nog een salt aan toegevoegd en in een class gezet.
Maar waar ik over twijfel is het volgende.
Per pagina die beveiligd moet worden moet hetvolgende gedaan worden:
+ Kijken of er een cookie is, met daarin een SessieId
+ SID opzoeken in tabel, kijken of TTD niet verstreken is
+ dingen ophalen voor in sessie object
Mocht iemand nu dus een cookie spoofen met daarin een bestaand sessie id; dan heeft deze persoon dus gewoon toegang tot het systeem. Wat natuurlijk niet wenselijk is.
Het SID is als volgt opgebouwd:
Dus dit is wel lekker random zullen we maar zeggen.
Maar dan nog, als iemand de $sid raadt, of gokt dan kan je gewoon doen wat je wilt.
Is er hier een oplossing voor? Of maak ik me nu zorgen over een kans van 1 op tig miljoen?
crisp in "[PHP] BeveiligingsTips nodig"
Het werkt allemaal perfect. En heb er zelf nog een salt aan toegevoegd en in een class gezet.
Maar waar ik over twijfel is het volgende.
Per pagina die beveiligd moet worden moet hetvolgende gedaan worden:
+ Kijken of er een cookie is, met daarin een SessieId
+ SID opzoeken in tabel, kijken of TTD niet verstreken is
+ dingen ophalen voor in sessie object
Mocht iemand nu dus een cookie spoofen met daarin een bestaand sessie id; dan heeft deze persoon dus gewoon toegang tot het systeem. Wat natuurlijk niet wenselijk is.
Het SID is als volgt opgebouwd:
PHP:
1
2
3
4
5
6
| function _generateSessieID(){ list($usec, $sec) = explode(' ', microtime()); $seed = (float) $sec + ((float) $usec * 100000); return md5(time()*microtime()*$seed);; } |
Dus dit is wel lekker random zullen we maar zeggen.
Maar dan nog, als iemand de $sid raadt, of gokt dan kan je gewoon doen wat je wilt.
Is er hier een oplossing voor? Of maak ik me nu zorgen over een kans van 1 op tig miljoen?
hier zou een slimme opmerking kunnen staan
maar die staat er niet