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å.)

Ingen kommentarer:

Om meg

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