Kan det lade sig gøre at lave et login system hvor hackere ikke kan komme ind, på andres brugere...
Ja og nej. Du kan sikre et loginsystem så det bedste angreb er et brute-force angreb på brugernavn/password kombinationer.
Dette angreb kan så udføres af et stykke software der prøver mange kombinationer i sekundet. Hvis en angriber har tid nok vil denne altså komme ind.
Der er flere måder man kan gøre dette mere besværligt for en angriber:
- Efter X forgæves login forsøg fra en host blokeres denne i et stykke tid.
- Efter X forgæves login forsøg dukker der et billede op med bogstaver, som brugeren(angriberen) også skal indtaste. Dette bruges f.eks. af gmail.com - og forhindrer at et automatiseret værktøj kan udføre angrebet.
Men: I PHP er der jo mange andre ting du skal være opmærksom på.
Blandt andet:
- Du skal huske et escape input til dine SQL queries for at undgå SQL injection.
- Du må ikke inkludere filer hvor en del af filnavnet gives direkte af brugeren.
- Du må ikke udføre shell-kommandoer hvor en del af input gives af en bruger.
- Du skal huske at enkode alle HTML tags brugere kan give som input til dit site (Undgå cross-site scripting der kan stjæle login oplysninger)
- og så videre..
(Altså: Stol ikke på noget bruger-input)
Mvh,
Thomas Nielsen