SQL-injeksjon
SQL-injeksjon oppstår når eksterne data endrer strukturen i en databasespørring. Parameterbinding håndterer verdier, ikke tilgangsrettigheter.
SQL-injeksjon innebærer at deler av SQL-instruksjoner føres inn gjennom data som en applikasjon behandler. Hvis slike verdier bygges inn i teksten i en spørring, kan de endre betydningen. Hvilke data som kan leses eller endres, avhenger blant annet av rettighetene til databasekontoen som brukes.
Skill prosjektfilter og spørringsstruktur
En fiktiv saksportal søker etter poster som tilhører en prosjektreferanse. Den behandler verdien fra feltet projectRef som en bundet spørringsparameter: Strukturen er fast, og verdien sendes separat gjennom databasegrensesnittet. Den skal forbli en søkeverdi og ikke bli en del av SQL-syntaksen.
Det å bare forberede en spørring etter at den er satt sammen av inndata, skaper ikke dette skillet. Heller ikke tidligere lagrede data eller verdier fra andre systemer skal bli ukontrollert SQL-tekst når en senere spørring bygges opp.
Bind verdier og fastsett strukturen
Et sorteringsfelt som sortKey er et annet tilfelle. Plassholdere for dataverdier erstatter ikke vilkårlige kolonnenavn eller sorteringsretninger. Applikasjonen kobler derfor kjente valg til faste kolonner og retninger definert i koden. OWASP beskriver eksplisitt dette skillet mellom parameterbinding og tillatte strukturvalg.
Parameterbinding kontrollerer heller ikke om den innloggede personen har tilgang til prosjektet som etterspørres. Denne tilgangskontrollen er fortsatt applikasjonens oppgave. En databasekonto begrenset til nødvendige rettigheter kan begrense mulig skade; den fjerner ikke selve den usikre oppbyggingen av spørringer.
Kilder
Beslektede begreper
- DatabaseEn organisert samling data som programvare kan lese målrettet og endre.
- SQLEt språk for å definere, spørre etter og endre data; ikke ett enkelt databaseprodukt.
- Objektrelasjonell mappingÅ koble programobjekter til data i en relasjonsdatabase.
- DataminimeringDataminimering begrenser personopplysninger til det som er passende, relevant og nødvendig for et bestemt formål.
- Retningslinje for dataoppbevaringEn retningslinje for dataoppbevaring fastsetter formål, start, varighet og slutt. Slettejobber og kopier må håndteres i den tekniske løsningen.
- KonvoluttkrypteringKonvoluttkryptering skiller datanøkkelen fra nøkkelen som beskytter den. Den krypterte filen og innpakkede datanøkkelen må håndteres sammen.
Ditt prosjekt med ASES
Beskriv prosjektet ditt for oss. Vi tar kontakt med en første vurdering.