Hvorfor kan jeg ikke stole på referrer?

Jeg har skrevet litt om hvordan en klient(browseren) snakker med en server. Og de 2 snakker et språk med en rekke headers. Hvis jeg f.eks. ønsker å besøke bloggtips.no/hvor-sikker-er-bloggen-din-egentlig, sender min browser dette:
GET /hvor-sikker-er-bloggen-din-egentlig HTTP/1.1 Host: bloggtips.no User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; nb-NO; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 Referer: http://skogtrollet.com Accept-Language: nb,no;q=0.8,nn;q=0.6,en-us;q=0.4,en;q=0.2
User-Agent er navnet på browseren. Accept-Language mitt språk. Og referer er den urlen hvor jeg kommer ifra. Disse HTTP headerene blir altså sendt ut av browseren. Og siden vi kontrollerer vår browser, kan vi da naturligvis endre disse headerene som browseren sender ut.
Et realistisk eksempel
Administratoren Knut kjører en web server på sin pc. Den er tilgjengelig på internett, og har et admin panel. På admin panelet er det ingen passord sjekk. Det admin sidene sjekker, er kun referrer: Om denne inneholder
http://localhost
Blir man automatisk logget inn og kan endre ting. Var kanskje et merkelig eksempel. Men poenget er å forstå at referrer og andre HTTP headere browseren sender ut, kan forfalskes.
Vil ikke en referrer sjekk øke sikkerheten?
Mange nettsteder hvor man logger inn og skal endre ting, sjekker referrer om den inneholder noe annet en urlen til nettstedet. Dette for å forhindre at f.eks. html skjemaer fra andre steder ikke kan submitte og endre ting. Så en referrer sjekk vil faktisk øke sikkerheten, dog fins det måter å forfalske referrer også til andre brukere enn deg selv.
Men husk på at mange folk bruker slike privacy greier, slik at referrer blir renset vekk, eller også faktisk endret til “privacy blocker 2.4″ f.eks. Som en måte å reklamere for seg selv. Altså kan en referrer sjekk, stenge ute uskyldige brukere.
Bruker du å sjekke referrer hos dine applikasjoner? Hvorfor eller hvorfor ikke?



































[...] fins en rekke andre metoder for å stjele cookies. Blant annet kan den bli avslørt i din referrer. Den kan bli avslørt ved hjelp av en browser bug. Uvitende brukere kan gi den vekk med social [...]
[...] Hvorfor kan jeg ikke stole på referrer? por admin [...]
HTTP referer eller HTTP referrer som det heter (morro med skrivefeil i protokoller) er i mine øyne ubrukelig i sikkerhetsaspektet. Som du nevner er den upålitelig i den forstand at den ikke alltid er tilstede. I tillegg så er den like mye til å stole på som alt av POST / GET og COOKIE data: ikke i det heletatt. Referrer bør kun brukes til en ting, og det er til å se hvor din besøkende kommer fra. Men for all del, husk å sjekk at det er en gyldig URL som ikke inneholde HTML før du presanterer den noen sted. (LES: http://xqus.com/archive/2004/08/20/cross-site-scripting-xss-nihuo-web-log-analyzer)
[...] har tidligere skrevet om emnet, og hvorfor man ikke kan stole på referreren. Men nå skal jeg vise nøyaktig hvordan hackere klarer å omgå en referrer [...]