Ik ben bezig met het maken van een controlesysteem in PHP/MySQL. De klant krijgt van mij een briefje met daarop 3 random waarden. Op de site kan de klant deze invoeren. Hiervoor laat ik ze eerst inloggen of registreren op de website. Vervolgens kunnen ze de gegevens invoeren.
Iedere keer dat ze een controle uitvoeren sla ik dit op in de database met tijd/datum enzovoorts. Vervolgens ziet de klant of de controle geslaagd is.
Ik wil fraude voorkomen, daarom heb ik wat controle's ingebouwd maar ik vraag me af of ik niet nog dingen vergeet.
Wat ik al heb:
FrontEnd:
• maximaal 1 geslaagde controle per dag
• veilige code (input validation enzovoorts)
BackEnd:
• per user het aantal controles
• per ip het aantal controles
• overzicht van de users per IP (opvallend als er heel veel accounts van 1 IP komen)
• tracert commando's e.d. kunnen vanuit de backEnd uitgevoerd worden zodat je redelijk snel opvallende zaken kunt achterhalen
• de pagina-statistieken worden per user ook weer gekoppeld zodat we kunnen volgen waar de user zich bevind op de site. Eventueel kunnen we daar zelfs pad-herkenning op gaan toepassen als het herkenbaar is.
Gebruikte technieken:
PHP/MySQL
Typo3 content management systeem
Wat kan er sowieso fout gaan:
• nog geen SSL verbinding. De login-gegevens kunnen dus achterhaald worden. Dit is niet erg in principe omdat het doel van de actie zoveel mogelijk succesvolle controles is.
• iemand kan toch, ondanks onze controles brute-force gaan proberen onze waarden te gokken. Dit is mogelijk omdat de random-waarden enigzins voorspelbaar zijn. Hier is niets aan te doen helaas.
Kortom: Hoe kan ik er zorg voor dragen dat dit systeem zo veilig mogelijk is? Zijn er aspecten aan het verhaal waar ik nog niet aan gedacht heb? Voor de mensen die denken dat het wat overdreven is: De controles lopen voor lange tijd dus mensen met slechte gedachten hebben veel tijd om wat te bedenken. Uiteraard valt over de mate van beveiligen te discussieren
Iedere keer dat ze een controle uitvoeren sla ik dit op in de database met tijd/datum enzovoorts. Vervolgens ziet de klant of de controle geslaagd is.
Ik wil fraude voorkomen, daarom heb ik wat controle's ingebouwd maar ik vraag me af of ik niet nog dingen vergeet.
Wat ik al heb:
FrontEnd:
• maximaal 1 geslaagde controle per dag
• veilige code (input validation enzovoorts)
BackEnd:
• per user het aantal controles
• per ip het aantal controles
• overzicht van de users per IP (opvallend als er heel veel accounts van 1 IP komen)
• tracert commando's e.d. kunnen vanuit de backEnd uitgevoerd worden zodat je redelijk snel opvallende zaken kunt achterhalen
• de pagina-statistieken worden per user ook weer gekoppeld zodat we kunnen volgen waar de user zich bevind op de site. Eventueel kunnen we daar zelfs pad-herkenning op gaan toepassen als het herkenbaar is.
Gebruikte technieken:
PHP/MySQL
Typo3 content management systeem
Wat kan er sowieso fout gaan:
• nog geen SSL verbinding. De login-gegevens kunnen dus achterhaald worden. Dit is niet erg in principe omdat het doel van de actie zoveel mogelijk succesvolle controles is.
• iemand kan toch, ondanks onze controles brute-force gaan proberen onze waarden te gokken. Dit is mogelijk omdat de random-waarden enigzins voorspelbaar zijn. Hier is niets aan te doen helaas.
Kortom: Hoe kan ik er zorg voor dragen dat dit systeem zo veilig mogelijk is? Zijn er aspecten aan het verhaal waar ik nog niet aan gedacht heb? Voor de mensen die denken dat het wat overdreven is: De controles lopen voor lange tijd dus mensen met slechte gedachten hebben veel tijd om wat te bedenken. Uiteraard valt over de mate van beveiligen te discussieren