Gå til indhold
atlas

Forveksl ikke disse

Cross-site scripting (XSS) vs. SQL injection

Hvorfor de er forskellige

Begge misbruger input, som sitet stoler for meget på, men SQL injection angriber databasen på serveren, mens XSS angriber den besøgendes browser.

Cross-site scripting (XSS)

Applikationssikkerhed

Et angreb, der smugler et skadeligt script ind på en webside, så det kører i browseren hos alle, der besøger siden.

Formelt

En fejl i en webapplikation, der sætter input udefra ind i sine sider uden først at gøre det ufarligt; webbrowseren kører så inputtet som kode med samme rettigheder som sitets egen kode og kan dermed læse, hvad brugeren ser, og handle i brugerens navn.

Forklaret enkelt

Som en opslagstavle, hvor nogen hænger en seddel op, der får den, der læser den højt, til at udlevere sine husnøgler - tavlen tjekker aldrig, hvad der bliver hængt op.

I praksis

En angriber skriver en kommentar med et skjult script på en kommunes høringsside; hver borger, der åbner siden, mens vedkommende er logget ind, giver uden at vide det angriberen sin session.

Hvorfor det betyder noget

Den skadelige kode kører inde på et site, som den besøgende stoler på, så browseren giver den adgang til den besøgendes session og data; det er fortsat en af de oftest rapporterede fejl i webapplikationer.

SQL injection

Applikationssikkerhed

Et angreb, hvor tekst skrevet i en formular læses af databasen som en kommando, så en udefrakommende kan læse eller ændre dens data.

Formelt

Et angreb på en webapplikation, der bygger databasekommandoer ved at sætte brugerens input direkte ind i kommandoteksten; særligt udformet input ændrer kommandoens betydning, så databasen udfører instruktioner, udvikleren aldrig havde tænkt sig.

Forklaret enkelt

Som en blanket, hvor der står "Betal beløbet ___ til Anna", og nogen skriver "10 kroner, og betal også alt til mig" i feltet - og ekspedienten gør bare det hele.

I praksis

En lille dansk webshop sender det, der tastes i søgefeltet, direkte videre til databasen; en angriber skriver et lille stykke SQL i stedet for et produktnavn, og siden viser alle kunders mailadresser og hashede adgangskoder.

Hvorfor det betyder noget

Ét svagt formularfelt kan udlevere en hel database, og fejlen dukker stadig op i ny kode årtier efter, at den første gang blev beskrevet - selvom en enkel vane, at holde input adskilt fra kommandoen, forhindrer den.

Fælles forbindelser

Atlas er i beta.