Saman alkuperän käytäntö

Saman alkuperän käytäntö on web-sovellusten ohjelmoinnissa käytettävä tärkeä turvallisuusmitta client-skripteille (useimmiten JavaScript). Käytäntö perustuu Netscape 2.0 -selaimeen tarpeellisine korjauksineen Navigator 2.01 ja Navigator 2.02. Se estää dokumentin tai skriptin lataamisen yhdestä lähteestä hakemalla tai asettamalla ominaisuuksia eri lähteestä.

 Rajoitukset 
Saman alkuperän filosofia on yksinkertainen: Ei ole turvallista luottaa minkään www-sivun ladattuun sisältöön. Koska kaksinkertaisesti luotetut (semi-trusted) skriptit suoritetaan ns. hiekkalaatikossa, niillä on oikeus käyttää resursseja vain samalta www-sivustolta, mutta ei eri www-sivustolta, joka voi olla vihamielinen.

Termi lähde on määritelty koostuvaksi domain-nimestä, protokollasta ja joissakin tapauksissa portista. Kaksi www-sivua kuuluu samaan lähteeseen jos ja vain jos nämä kolme arvoa ovat samat. Havainnollistava taulukko antaa esimerkeillä lähteiden vertailuja  URL:ille ”http://www.esimerkki.fi/hakem/muu.html”

 URL Tulos Syy http://www.esimerkki.fi/hakem2/muu.html OK Sama protokolla ja host http://www.esimerkki.fi/hakem/sisainen/muu.html OK Sama protokolla ja host http://www.esimerkki.fi:81/hakem2/muu.html Virhe* Sama protokolla ja host mutta eri portti https://www.esimerkki.fi/hakem2/muu.html Virhe Eri protokolla http://en.esimerkki.fi/hakem2/muu.html Virhe Eri host http://esimerkki.fi/hakem2/muu.html Virhe Eri host

(*) Huomaa: Internet Explorer jättää huomiomatta portin kun lasketaan SOP-yhtäläisyyttä.
Käyttämällä suhteellisia URLeja ja rajoittamalla niiden käyttöä vain samaan lähteeseen, tämä rajoitus on helposti vältettävissä.

Luokka:Turvallisuushaavoittuvuudet