Nettsteder og apper krever ofte brukerinndata for å oppfylle deres fulle formål. Hvis et nettsted lar brukere abonnere, må brukerne kunne oppgi e-postadressen sin. Og netthandel krever selvsagt inntasting av betalingsdetaljer.
Problemet med brukerinndata er imidlertid at det også lar en hacker skrive inn noe ondsinnet i et forsøk på å lure nettsiden eller appen til å oppføre seg dårlig. For å beskytte mot dette, må ethvert system som tilbyr brukerinndata ha inndatavalidering.
Så hva er inputvalidering og hvordan fungerer det?
Hva er inngangsvalidering?
Inndatavalidering er prosessen med å analysere inndata og ikke tillate de som anses som uegnet. Ideen bak inputvalidering er at ved kun å tillate input som oppfyller spesifikke kriterier, blir det umulig for en angriper å legge inn en input designet for å skade et system.
Inndatavalidering bør brukes på alle nettsider eller applikasjoner som tillater brukerinndata. Selv om et nettsted eller en app ikke lagrer konfidensiell informasjon, kan det å tillate ugyldige inndata også føre til problemer med brukeropplevelsen.
Hvorfor er inndatavalidering viktig?
Inndatavalidering er viktig av to grunner, nemlig brukeropplevelse og sikkerhet.
Brukererfaring
Brukere skriver ofte inn ugyldige inndata, ikke fordi de prøver å angripe et nettsted eller en app, men fordi de har gjort en feil. En bruker kan stave et ord feil, eller oppgi feil informasjon, for eksempel å skrive inn brukernavnet sitt i feil boks eller prøve et utdatert passord. Når dette skjer, kan inndatavalidering brukes til å informere brukeren om feilen, slik at de kan rette opp den raskt.
Inndatavalidering forhindrer også scenarier der registreringer og salg går tapt fordi en bruker ikke er informert og derfor mener at riktig input er gitt når den ikke har gjort det.
Sikkerhet
Inndatavalidering forhindrer et bredt spekter av angrep som kan utføres mot et nettsted eller en applikasjon. Disse cyberangrepene kan forårsake tyveri av personlig informasjon, tillate uautorisert tilgang til andre komponenter og/eller forhindre at en nettside/applikasjon fungerer.
Utelatelse av inndatavalidering er også lett å oppdage. Angripere kan bruke automatiserte programmer for å legge inn ugyldige inndata på nettsteder i bulk og bestemme hvordan nettsidene reagerer. De kan deretter starte manuelle angrep på alle nettsteder som ikke er beskyttet.
Dette betyr at mangel på inputvalidering ikke bare er en viktig sårbarhet; det er en sårbarhet som ofte vil bli funnet og kan derfor ofte forårsake hacks.
Hva er Input Validation Attacks?
Et inngangsvalideringsangrep er ethvert angrep som involverer å legge til ondsinnet input i et brukerinndatafelt. Det finnes mange forskjellige typer inputvalideringsangrep som forsøker å gjøre forskjellige ting.
Bufferoverløp
En bufferoverflyt oppstår når for mye informasjon legges til et system. Hvis inndatavalidering ikke brukes, er det ingenting som hindrer en angriper i å legge til så mye informasjon de vil. Dette kalles en bufferoverløpsangrep. Det kan føre til at et system slutter å fungere og/eller sletter informasjon som for øyeblikket er lagret.
SQL-injeksjon
SQL-injeksjon er prosessen med å legge til SQL-spørringer i inndatafelt. Det kan ha form av å legge til en SQL-spørring i et nettskjema eller legge til en SQL-spørring til en URL. Målet er å lure systemet til å utføre spørringen. SQL-injeksjon kan brukes til å få tilgang til sikre data og for å endre eller slette data. Dette betyr at inndatavalidering er spesielt viktig for alle nettsider eller apper som lagrer viktig informasjon.
Skripting på tvers av nettsteder
Cross-site scripting involverer legge til kode i brukerinndatafelt. Det utføres ofte ved å legge til kode på slutten av en URL som tilhører et anerkjent nettsted. URL-en kan deles gjennom fora eller sosiale medier, og koden kjøres deretter når et offer klikker på den. Dette skaper en ondsinnet nettside som ser ut til å være vert på det anerkjente nettstedet.
Tanken er at hvis et offer stoler på målnettstedet, bør de også stole på en ondsinnet nettside som ser ut til å tilhøre den. Den ondsinnede nettsiden kan utformes for å stjele tastetrykk, omdirigere til andre sider og/eller starte automatiske nedlastinger.
Hvordan implementere inngangsvalidering
Inndatavalidering er ikke vanskelig å implementere. Du må ganske enkelt finne ut hvilke regler som kreves for å forhindre ugyldig inndata og deretter legge dem til systemet.
Skriv alle datainndata
Lag en liste over alle mulige brukerinndata. Dette vil kreve at du ser på alle brukerskjemaer og vurderer andre typer input, for eksempel URL-parametere.
Lag regler
Når du har en liste over alle datainndata, bør du lage regler som dikterer hvilke innganger som er akseptable. Her er noen vanlige regler å implementere.
- Hvitelisting: Tillat bare spesifikke tegn.
- Svartelisting: Hindre at spesifikke tegn blir lagt inn.
- Format: Tillat bare innganger som følger et bestemt format, dvs. bare tillater e-postadresser.
- Lengde: Tillat kun innganger opp til en viss lengde.
Implementere regler
For å implementere reglene, må du legge til kode på nettstedet eller applikasjonen som avviser alle inndata som ikke følger dem. På grunn av trusselen fra ugyldige innganger, bør systemet testes før det går live.
Opprett svar
Forutsatt at du ønsker at inndatavalidering også skal hjelpe brukere, bør du legge til meldinger som forklarer både hvorfor en input er feil og hva som bør legges til i stedet.
Inndatavalidering er et krav for de fleste systemer
Inndatavalidering er et viktig krav for enhver nettside eller app som tillater brukerinndata. Uten kontroll over hvilke input som legges til et system, har en angriper en rekke teknikker som kan brukes til hackingformål.
Disse teknikkene kan krasje et system, endre det og/eller tillate tilgang til privat informasjon. Systemer uten inndatavalidering blir populære mål for hackere, og internett søkes stadig etter dem.
Mens inndatavalidering først og fremst brukes for sikkerhetsformål, spiller den også en viktig rolle i å fortelle brukere når de legger til noe feil.