wat je nog zou kunnen doen met het inlog formulier is dat je er nog een hidden field bij maakt waar je een token in zet. dit token bewaar je tevens in de database met de huidige tijd/datum erbij.
als iemand probeert in te loggen dan kijk je of het token dat als POST variabele meegestuurd wordt niet ouder is dan bijv. 10 minuten en of het geldig is.
Ongeveer hetzelfde zou ik ook met de $_SESSION['login'] doen. Geef dat ding een willekeurig token en sla hem tevens op in de database, vergelijk hem iedere keer als een pagina wordt opgevraagd.
Controleren of een formulier verzonden is (regel 2):
if($_SERVER['REQUEST_METHOD'] == "POST")
Je maakt twee variabelen aan, zonder te controleren of de $_POST waarden wel bestaan. Los daarvan; het aanmaken is natuurlijk niet nodig. Je hebt immers de $_POST waarden.
sha1 is volgens mij niet (meer) het meest veilig. Kijk naar bcrypt.
Zou de controle op regel 8 (het wachtwoord) niet laten afhangen van de uitkomst van regel 6.
Geef iemand bij het onjuist invullen direct daarvan zo veel mogelijk informatie. Als iemand dus naam en wachtwoord niet invult, toon dat dan beide.
Zou geen * gebruiken in de select-query, maar het veld/de velden benoemen die je wilt opvragen.
Zou in php ' gebruiken en in HTML " (dus omgekeerd met wat jij hebt).
Ik zou bij het succesvol inloggen werken met een header ipv refresh.
wat je nog zou kunnen doen met het inlog formulier is dat je er nog een hidden field bij maakt waar je een token in zet. dit token bewaar je tevens in de database met de huidige tijd/datum erbij.
als iemand probeert in te loggen dan kijk je of het token dat als POST variabele meegestuurd wordt niet ouder is dan bijv. 10 minuten en of het geldig is.
Ongeveer hetzelfde zou ik ook met de $_SESSION['login'] doen. Geef dat ding een willekeurig token en sla hem tevens op in de database, vergelijk hem iedere keer als een pagina wordt opgevraagd.
Controleren of een formulier verzonden is (regel 2):
if($_SERVER['REQUEST_METHOD'] == "POST")
Je maakt twee variabelen aan, zonder te controleren of de $_POST waarden wel bestaan. Los daarvan; het aanmaken is natuurlijk niet nodig. Je hebt immers de $_POST waarden.
sha1 is volgens mij niet (meer) het meest veilig. Kijk naar bcrypt.
Zou de controle op regel 8 (het wachtwoord) niet laten afhangen van de uitkomst van regel 6.
Geef iemand bij het onjuist invullen direct daarvan zo veel mogelijk informatie. Als iemand dus naam en wachtwoord niet invult, toon dat dan beide.
Zou geen * gebruiken in de select-query, maar het veld/de velden benoemen die je wilt opvragen.
Zou in php ' gebruiken en in HTML " (dus omgekeerd met wat jij hebt).
Ik zou bij het succesvol inloggen werken met een header ipv refresh.
Ook bedankt voor de reactie, vooral met SHA1 enz.
Voor de rest met de header en de informatie van het onjuist invullen, daar ga ik later verder op in. Het gaat me nu meer om de veiligheid.
@- SanThe -
Ben ik in zoverre met je eens, dat je niet moet aangeven of het wachtwoord of de naam onjuist is. Waar ik op doel is dat TS controleert op lege velden (regel 6/8).
Ik zou dat niet met een ifelse doen, maar in 1x met OR of (desnoods) met 2x een else.