Politika istog izvora — разлика између измена

59 бајтова уклоњено ,  пре 2 месеца
нема резимеа измене
м (.)
 
U [[Рачунарство|računarstvu]], '''polisapolitika zajedničkogistog poreklaizvora''' ({{jez-engl-lat|same-origin policy}}) je bitan koncept u sigurnosnom modelu [[Веб-апликације|veb -aplikacije]]. Ona dozvoljava skriptama koje rade na stranicama poreklom sa istog sajta – kombinacija sheme ({{јез-енг|[[URI scheme]]}}), hostname-a i računarskog porta ({{јез-енг|Port (computer networking)}}) <ref name="w3c_sop"/> – da pristupe međusobnom objektnom modelu dokumenata ([[Objektni model dokumenta|DOM]]) bez posebnih ograničenja, ali sprečava pristup [[Objektni model dokumenta|DOMu]] drugih sajtova.<ref name="w3c_sop">[http://www.w3.org/Security/wiki/Same_Origin_Policy Same Origin Policy - Web Security]. W3.org. Retrieved on 2013-08-20.</ref> PolisaPolitika zajedničkogistog poreklaizvora se takodjetakođe primenjuje na [[XMLHttpRequest|XMLHttpRequest-ove]] osim u slučaju da server pruža Access-Control-Allow-Origin (CORS) zaglavlje. WebSocket-i naročito '''nisu''' podležni ovom konceptu.
 
Mehanizam nosi posebni značaj za moderne web-aplikacije koje veoma zavise od [[Cookie|HTTP kolačića]] ({{јез-енг|cookie}}) da bi održali korisničke sesije, zato što se serveri ponašaju u zavisnosti od informacije HTTP kolačića kako bi otkrili osetljive informacije ili kako bi promenili stanje. Striktna razdvojenost od sadržaja koji snabdeva nepovezani sajt mora biti održana od strane klijenta kako bi se izbegao gubitak poverljivosti i integriteta podataka.
== Istorija ==
 
Koncept polisepolitike zajedničkogistog poreklaizvora datira od pretrazivačaveb-pregledača Netscape Navigator 2 pretraživača iz 1995. godine. Svi moderni pretraživačipregledači koriste neku formu poreklo-polise jer je to kamen temeljac pretraživačke bezbednosti pregledača<ref>{{cite web|title=Browser Security Handbook, part 2|url=http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy|publisher=google.com|accessdate = 31. 1. 2014.}}</ref>. Polise ne moraju da se poklapaju sa nekom preciznom specifikacijom<ref name="W3C Same Origin Document">{{cite web|title=Same Origin Policy|url=http://www.w3.org/Security/wiki/Same_Origin_Policy|publisher=W3C|accessdate = 31. 1. 2014.}}</ref> ali se često koriste kako bi definisali ugrubo kompatibilne bezbednosne granice za druge skriptne jezike kao što su [[Adobe Flash]] ili Adobe Acrobat, ili za mehanizme nevezane za direktnu DOM manipulaciju, kao na primer [[XMLHttpRequest]].
 
== Pravila određivanja porekla ==
|}
 
Za razliku od drugih pretrazivačapregledača, Internet Explorer ne uključuje port u računanju porekla, on koristi Security Zone umesto toga<ref>{{cite web|last=Lawrence|first=Eric|title=IEInternals - Same Origin Policy Part 1|url=http://blogs.msdn.com/b/ieinternals/archive/2009/08/28/explaining-same-origin-policy-part-1-deny-read.aspx|accessdate = 22. 10. 2013.}}</ref>
.
 
== Opuštanje polisepolitike zajedničkogistog poreklaizvora ==
 
U nekim okolnostima polisapolitika zajedničkogistog poreklaizvora je previše restriktivna, pa predstavlja problem za velike web-sajtove koji koriste više poddomena. Evo četiri načina da se polisa opusti :
 
=== document.domain odlike ===
 
Ako dva prozora (ili frejma) sadrže skriptu koja postavlja domen na istu vrednost, polisapolitika zajedničkogistog poreklaizvora je opuštena za ova dva prozora, i oni mogu međusobno dejstvovati. Na primer, sarađujući skripti u dokumentima očitanim iz orders.example.com i catalog.example.com mogu postaviti da njihov document.domain bude „example.com”, i tako bi dokumenti izgledali kao da su isto porekla i dozvolili bi svakom dokumentu da pročita odlike ovog drugog. Ovo možda neće svaki put raditi, jer bi port sklonjen u internu reprezentaciju mogao da bude oznacen sa null. Drugim rečima, example.com port 80 će postati example.com port null zato što se document.domain update-uje. Port null se ne može tretirati kao 80 (u zavisnosti od korišćenog pretraživačapregledača) i zato može da propadne ili uspe u zavisnost od pretraživačapregledača.<ref>{{cite web|last=LePera|first=Scott|title=Cross-domain security woes|url=http://jszen.blogspot.nl/2005/03/cross-domain-security-woes.html|work=The Strange Zen Of JavaScript|accessdate = 4. 4. 2014.}}</ref>
 
=== Cross-Origin deljenje resursa ===
 
Druga tehnika za opuštanje postaje standardizovana kao Cross-Origina deljenje resursa (Cross-Origin resource sharing). On produžava HTTP sa novim Origin request zaglavljem i novim CORS uzajamnim zaglavljem. To dozvoljava serverima da koristi zaglavlja da eksplicitno navodi porekla koja mogu da traže fajl ili da iskoriste „wildcard” i dozvole fajlu da bude tražen od strane bilo kog sajta. PretraživačiPregledači kao što je Firefox 3.5 i Safari 4 koriste ovo novo zaglavlje da dozvole cross-origin HTTP zahteve sa XMLHttpRequest-om koji bi inače bili zabranjeni polisompolitikom zajedničkogistog poreklaizvora.<ref>[http://www.w3.org/TR/cors/ Cross-Origin Resource Sharing]. W3.org. Retrieved on 2013-08-20.</ref>
 
=== Cross-document messaging ===
== Corner slučajevi i izuzeci ==
 
Ponašanje provera i sličnih mehanizama polisepolitike zajedničkogistog poreklaizvora nije dobro definisana u nekoliko corner slučajeva kao na primer za pseudo-protokole koji nemaju jasno definisano host ime ili port povezan sa svojim URLom (file:, data:, itd.). Ovo je stvaralo popriličan broj sigurnosnih problema, kao što su generalno nepoželjna mogućnost svakog lokalno sačuvanog HTML fajla da pristupi svim drugim fajlovima na disku, ili da komunicira sa bilo kojim sajtom na internetu.
TakodjeTakođe, mnoge cross-domain operacije koje su bile pre JavaScript-a nisu podležne proveri polisepolitike zajedničkogistog poreklaizvora. Jedan takav primer je mogućnost uključivanja skripta preko domena.
Na kraju, određeni tipovi napada, kao što je DNS rebinding ili [[Прокси сервер|serverski proksiji]], dozvoljavaju da se provera host name-a obori, i omogućavaju odbeglim veb stranicama interakciju sa sajtovima kroz adrese koje nisu njihovog pravog porekla. Ovi napadi su opasnost samo u posebnim situacijama, zato što pretraživačpregledač i dalje veruje da interakciju vrši sa napadačkim sajtom, i zato ne deli kolačiće trećih lica ili druge osetljive podatke napadaču.
 
== Ublažavanja ==
 
Da bi omogucili projektantu da zaobiđe polisupolitiku zajedničkogistog poreklaizvora, nekoliko „hakova”, kao što je na primer identifikator fragmenata ili <code>window.name</code> odlika su korišćeni za prosleđivanje podataka između dokumenata koji su u različitim domenima. Sa HTML5 standardom, metoda je formalizovana za ovo : <code>postMessage</code> interfejs,<ref>[http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#posting-messages HTML Living Standard. Communication: Cross-document messaging: Posting messages] — [[WHATWG]].</ref><ref>[http://www.w3.org/TR/html5/comms.html#posting-messages HTML5. Communication: Cross-document messaging: Posting messages] {{Wayback|url=http://www.w3.org/TR/html5/comms.html |date=20121016001848 }} — [[W3C]].</ref> koji se jedino nalazi na novijim pretraživačimapregledačima.<ref>[http://caniuse.com/#feat=x-doc-messaging When can I use: Support for Cross-document messaging]</ref> JSONP takođe može da se iskoristi kako bi omogućio pozive slične Ajax-u drugim domenima.<ref>{{cite web|url=http://www.kendoui.com/blogs/archive/11-10-03/using_cors_with_all_modern_browsers.aspx|title=Blog Post: Using CORS with all (modern) browsers}}</ref>
 
== Reference ==