Alt om programmering som jeg selv finner interessant. No more, no less. Trolig vil det være mest om webprogrammering, .NET og andre ting jeg jobber med fast.

torsdag, august 24, 2006

Gode ideer som ikke er så gode likevel

I det siste har jeg forsøkt å ha fokus på sikkerhet når jeg programmerer. Jeg mener at vi som er programmerere må sikre koden i alle bauger og kanter for å motvirke angrep. Uheldigvis gikk jeg litt for langt i min iver etter å leve opp til det.

Det syntes som en svært god ide klekket ut av en brilliant mesterhjerne da jeg kodet en webside til å ikke å akseptere direkte kall -- kun ved klikk på lenker under samme domene skulle funksjonaliteten igangsettes. Det uheldige var selvsagt at jeg ikke sjekket grundig nok om ideen lot seg omsette i praksis. Så hva var det jeg hadde gjort og hva ble galt?

I webprogrammering har en tilgang til en rekke variable som sendes med forespørsler fra nettlesere. Den jeg benyttet meg av var URLREFERRER. For å sikre mot lenker fra andre domener kontrollerte jeg at denne inneholdt samme domene som applikasjonen kjørte på. Applikasjonen er forøvrig en butikkløsning og det kom snart undrende spørsmål fra kunder som ikke kunne handle i butikken. Unødvendig å nevne at dette fikk fart på både meg og andre.

Det som skjedde var at kundene hadde brannmurer som filtrerte bort URLREFERRER fra forespørsler, og koden "trodde" dermed at noen hadde forsøkt å få tilgang til siden ved å skrive inn adressen direkte i adresselinjen i en nettleser. Huff!

Moralen i historien må vel bli at fokus på sikkerhet er viktig, men det er like viktig å undersøke at sikkerheten som etableres faktisk ikke ødelegger for vanlige brukere. Jeg bommet stygt på det siste.

(I lukkede løsninger tror jeg imidlertid at denne teknikken kan benyttes som et av flere tiltak. Så det så.)

lørdag, august 05, 2006

Artikkel om sikkerhet i webapplikasjoner

Sikkerhet i webapplikasjoner er et viktig men dessverre lett neglisjerbart tema. Det er ingen heksekunst å lage programmer som er vidåpne for ulike angrep. Dersom en ønsker å utvikle sikre applikasjoner MÅ en lære seg hvilke farer som truer og hva en kan gjøre for å unngå dem.

Følgende lenke er til en artikkel skrevet av Sverre H. Huseby som tar for seg ulike former for angrep med interessante og faktiske eksempler. Artikkelen er et godt utgangspunkt for å utvikle en forståelse for hvilke farer som lurer ”der ute”. Han foreslår at utviklere tar til seg følgende mantra når de utvikler programvare: "All clients are evil". Ingen inndata må tas for gitt. Har du sendt en verdi til klienten, for eksempel en informasjonskapsel eller et skjult felt, så må ikke applikasjonen blindt akseptere verdien når den postes tilbake. Den kan ha blitt endret.

Common Security Problems in the Code of Dynamic Web Applications http://www.webappsec.org/projects/articles/062105.shtml

Om meg

Bildet mitt
I love music. And computers. And Dostoevsky, too.