Websites og apps kræver ofte brugerinput for at opfylde deres fulde formål. Hvis et websted tillader brugere at abonnere, skal brugerne kunne oplyse deres e-mailadresse. Og online shopping kræver naturligvis indtastning af betalingsoplysninger.
Problemet med brugerinput er dog, at det også giver en hacker mulighed for at indtaste noget ondsindet i et forsøg på at narre hjemmesiden eller appen til at opføre sig forkert. For at beskytte mod dette skal ethvert system, der tilbyder brugerinput, have inputvalidering.
Så hvad er inputvalidering, og hvordan fungerer det?
Hvad er inputvalidering?
Inputvalidering er processen med at analysere input og afvise dem, der anses for uegnede. Ideen bag inputvalidering er, at ved kun at tillade input, der opfylder specifikke kriterier, bliver det umuligt for en angriber at indtaste et input, der er designet til at forårsage skade på et system.
Inputvalidering bør bruges på enhver hjemmeside eller applikation, der tillader brugerinput. Selvom et websted eller en app ikke gemmer nogen fortrolige oplysninger, kan det at tillade ugyldige input også forårsage problemer med brugeroplevelsen.
Hvorfor er inputvalidering vigtig?
Inputvalidering er vigtig af to årsager, nemlig brugeroplevelse og sikkerhed.
Brugererfaring
Brugere indtaster ofte ugyldige input, ikke fordi de forsøger at angribe et websted eller en app, men fordi de lavede en fejl. En bruger kan stave et ord forkert eller give de forkerte oplysninger, såsom at indtaste deres brugernavn i den forkerte boks eller prøve en forældet adgangskode. Når dette sker, kan inputvalidering bruges til at informere brugeren om deres fejl, så de hurtigt kan rette den.
Inputvalidering forhindrer også scenarier, hvor tilmeldinger og salg går tabt, fordi en bruger ikke er informeret og derfor mener, at der er givet korrekt input, når det ikke er tilfældet.
Sikkerhed
Inputvalidering forhindrer en lang række angreb, der kan udføres mod et websted eller en applikation. Disse cyberangreb kan forårsage tyveri af personlige oplysninger, tillade uautoriseret adgang til andre komponenter og/eller forhindre en hjemmeside/applikation i at fungere.
Udeladelsen af inputvalidering er også let at opdage. Angribere kan bruge automatiserede programmer til at indtaste ugyldige input på websteder i bulk og bestemme, hvordan webstederne reagerer. De kan derefter iværksætte manuelle angreb på alle websteder, der ikke er beskyttet.
Det betyder, at manglende inputvalidering ikke kun er en vigtig sårbarhed; det er en sårbarhed, der ofte vil blive fundet, og som derfor ofte kan forårsage hacks.
Hvad er inputvalideringsangreb?
Et inputvalideringsangreb er ethvert angreb, der involverer tilføjelse af ondsindet input i et brugerinputfelt. Der er mange forskellige typer inputvalideringsangreb, der forsøger at gøre forskellige ting.
Bufferoverløb
Et bufferoverløb opstår, når der tilføjes for meget information til et system. Hvis inputvalidering ikke bruges, er der intet, der forhindrer en angriber i at tilføje så meget information, som de ønsker. Dette kaldes en bufferoverløbsangreb. Det kan få et system til at stoppe med at fungere og/eller slette oplysninger, der er gemt i øjeblikket.
SQL-injektion
SQL-injektion er processen med at tilføje SQL-forespørgsler til inputfelter. Det kan tage form af at tilføje en SQL-forespørgsel til en webformular eller tilføje en SQL-forespørgsel til en URL. Målet er at narre systemet til at udføre forespørgslen. SQL-injektion kan bruges til at få adgang til sikre data og til at ændre eller slette data. Det betyder, at inputvalidering er særlig vigtig for enhver hjemmeside eller app, der gemmer vigtig information.
Cross-site scripting
Cross-site scripting involverer tilføjelse af kode til brugerindtastningsfelter. Det udføres ofte ved at tilføje kode i slutningen af en URL, der tilhører et velrenommeret websted. URL'en kan deles gennem fora eller sociale medier, og koden udføres derefter, når et offer klikker på den. Dette skaber en ondsindet webside, der ser ud til at være hostet på det velrenommerede websted.
Ideen er, at hvis et offer har tillid til målwebstedet, skal de også stole på en ondsindet webside, der ser ud til at tilhøre den. Den ondsindede webside kan være designet til at stjæle tastetryk, omdirigere til andre sider og/eller begynde automatiske downloads.
Sådan implementeres inputvalidering
Inputvalidering er ikke svært at implementere. Du skal blot finde ud af, hvilke regler der kræves for at forhindre ugyldig input og derefter tilføje dem til systemet.
Skriv alle datainput
Opret en liste over alle mulige brugerinput. Dette kræver, at du ser på alle brugerformularer og overvejer andre typer input, såsom URL-parametre.
Opret regler
Når du har en liste over alle datainput, bør du oprette regler, der dikterer, hvilke input der er acceptable. Her er et par almindelige regler, der skal implementeres.
- Whitelisting: Tillad kun at indtaste specifikke tegn.
- Blacklisting: Forhindrer, at specifikke tegn bliver indtastet.
- Format: Tillad kun input, der overholder et bestemt format, dvs. tillad kun e-mail-adresser.
- Længde: Tillad kun input af op til en vis længde.
Implementere regler
For at implementere reglerne skal du tilføje kode til webstedet eller applikationen, der afviser input, der ikke følger dem. På grund af truslen fra ugyldige input, bør systemet testes, før det går live.
Opret svar
Forudsat at du ønsker inputvalidering til også at hjælpe brugere, bør du tilføje meddelelser, der forklarer både hvorfor et input er forkert, og hvad der skal tilføjes i stedet for.
Inputvalidering er et krav for de fleste systemer
Inputvalidering er et vigtigt krav for enhver hjemmeside eller app, der tillader brugerinput. Uden kontrol over, hvilket input der føjes til et system, har en angriber en række teknikker, der kan bruges til hackingformål.
Disse teknikker kan crashe et system, ændre det og/eller tillade adgang til private oplysninger. Systemer uden inputvalidering bliver populære mål for hackere, og internettet søges konstant efter dem.
Mens inputvalidering primært bruges til sikkerhedsformål, spiller den også en vigtig rolle i at fortælle brugerne, når de tilføjer noget forkert.