Als een kortingscode vaker werkt dan bedoeld: logicafouten in uw webshop
Logicafouten zitten in de regels van uw webshop, niet in verouderde software. Een scanner vindt ze niet; een mens wel. Zo herkent en voorkomt u ze.
Kort antwoord
Een logicafout is een fout in de regels van uw webshop: een kortingscode die stapelt, een prijs die in de winkelwagen te wijzigen is of een betaalstap die is over te slaan. Software werkt dan precies zoals gebouwd, maar niet zoals bedoeld. Daarom vindt een scanner dit niet en een handmatige pentest wel.
Wat is een logicafout?
Bij de meeste lekken gaat er technisch iets mis, zoals verouderde code. Bij een logicafout klopt de techniek, maar klopt de bedenking niet. De webshop doet wat de bouwer heeft gemaakt, alleen had niemand bedacht dat een klant het zo zou gebruiken. OWASP noemt dit testen van de bedrijfslogica en heeft er een apart hoofdstuk voor in de Web Security Testing Guide.
Voorbeelden uit webshops
Een kortingscode voor eenmalig gebruik die toch vaker werkt, bijvoorbeeld door hem tegelijk in twee vensters te gebruiken. Een prijs of aantal dat in het verzoek naar de server is aan te passen. Een bestelling die als betaald wordt gemarkeerd zonder dat de betaling rond is. Of een cadeaubon die meer waard wordt door hem te splitsen en weer samen te voegen.
Waarom een scanner dit mist
Een scanner zoekt naar bekende patronen, zoals een verouderde versie. Hij weet niet wat uw kortingsregels zijn en kan dus niet zien dat ze te omzeilen zijn. Daarvoor moet iemand uw webshop gebruiken zoals een klant, en daarna zoals iemand die bewust de grenzen opzoekt.
Wat u zelf kunt doen
Laat de server elke prijs, korting en betaling controleren, nooit alleen de browser. Leg per kortingscode vast hoe vaak en door wie hij gebruikt mag worden, en kijk af en toe in uw bestellingen of er opvallende kortingen tussen zitten. Laat na grote wijzigingen in de checkout handmatig testen.
Wij testen alleen na schriftelijke toestemming van de eigenaar van het systeem. Zelf iets uitproberen op de website van een ander is strafbaar, ook met goede bedoelingen.
