Internet medija tip
Internet medija tip[1] je dvodelni identifikator za format dokumenta na Internetu. Originalno identifikatori su definisani u RFC 2046 za Internet poštu u okviru SMTP protokola, ali je njihovo korišćenje prošireno i na druge protokole kao što su: HTTP, RTP i SIP. Ovi tipovi su zvani MIME tipovi i nekad se poistovećuju sa Content-types po imenu zaglavlja u protokolima gde je vrednost tipa nosila isti naziv kao i kod MIME tipa. Originalno primena MIME tipova (engl. Multipurpose Internet Mail Extensions) je bila da se ne-ASCII delovi elektronske pošte (to jest razni medija fajlovi koji se šalju u istoj poruci) razdvoje od samog teksta poruke. Bez MIME tipova email klijent ne bi mogao da razlikuje formate priloga (engl. attachment).
Medija tip je sačinjen od 2 ili više delova: tipa, podtipa, i nula ili više opcionalnih atributa.
Na primer podtip od tipa text
ima opcionalni charset
atribut koji se može koristiti da ukaže na tip enkodiranja karaktera recimo
text/html; charset=UTF-8
. A podtip od recimo tipa multipart
često definiše boundary
između delova.
Dozvoljene vrednosti za atribut charset
su definisane u listi IANA karakterskih setova.
Pre RFC 6648,[2] eksperimentalni i nestandardizovani[3] medija tipovima su dodeljivani prefiksi x-
međutim pokazalo se da ova praksa nije dobra jer je dovodila do problema nekompatibilnosti kad su eksperimentalni tipovi standardizovani. Danas se ta praksa ne preporučuje. Neki podtipovi imaju prefikse:
- „
vnd.
“ znači specifično za prodavca (engl. vendor-specific);[4]. - „
prs.
“ predstavlja lične ili vanity tree.[5]
Novi medija tipovi se mogu kreirati po uputstvu datom u RFC 4288.
Pored email klijenata, Internet pregledači takođe podržavaju različite medija tipove. To omogućava pregledaču da prikaže ili ispiše datoteke koje nisu u HTML formatu. Specifikacija medija tipova je takođe bitna informacija za pretraživačke mašine (engl. search engine) zarad klasifikacije podataka na internetu.
Postoji velika količina registrovanih medija tipova kao što su GIF ili PostScript datoteke. Takođe moguće je definisati svoj medija tip.
Ograničenja
[уреди | уреди извор]Često medija tipovi se koriste kao deo protokola u komunikaciji između dve aplikacije (izvorne i odredišne). U tom kontekstu javljaju se dva problema:
Prvi problem je vezan za mogućnost izvorne aplikacije (web servera, email klijenta) da tačno odredi internet medija tip za neki dokument. Za više informacija o tipovima dokumenata pogledati File format. Mnoge aplikacije heuristikom pokušavaju da klasifikuju datoteku koristeći se ekstenzijom u nazivu ili sa magičnim brojem datoteke (postoje i drugi načini). Nijedan način nije savršen i može netačno da klasifikuje medija tip nekog dokumenta.
- Netačna ekstenzija: Klasifikator ekstenzija datoteka će prijaviti grešku „netačan medija tip“. Primera radi neke aplikacije netačno dodeljuju datoteci Rich text format .doc ekstenzijom umesto korektne .rtf ekstenzije.
- Ekstenzija fali: Klasifikator ekstenzija datoteka će prijaviti grešku „fali medija tip“, ili će netačno prijaviti „catch-all“ tip recimo
application/octet-stream
. A fajlovi bez ekstenzije su česti na operativnim sistemima tipa Uniks, Linuks. - Kolizija ekstenzija: Često se dešava da više različitih formata koristi istu ekstenziju u kom slučaju će tip biti nasumično odabran zavisno do aplikacije. Na primer i Microsoft Word templates i graphviz graph files koriste istu ekstenziju „.dot“.
- Dvosmisleni kontejner format: a magic number classifier may give a correct, though non-specific, media type, thus preventing a meaningful interpretation of the content. For instance, Office Open XML (.docx) format and Java executable (.jar) are both implemented internally as a zipped archive. A magic number system may classify such files as
application/zip
instead of the more specific type. Similar problems occur between XML and application formats implemented on top of XML. - Dvosmisleni magični broj: Napadač može da napravi datoteku koja je istovremeno identifikovana kao dva različita internet medija tipa. Na primer interna struktura Gifar-a ga pravi istovremeno validnim GIF image i Java executable.
Sa druge strane odredišna aplikacija treba da odluči da li da veruje u korektnost dodeljenog internet medija tipa. Još 2002 god. W3C je upozorio da je ozbiljna greška ako je internet medija tip pogrešno dodeljen i da aplikacija ne sme da pogađa tačan internet medija tip.[1]:Section 2. Ipak principi softverskog inženjerstva ohrabruju aplikaciju da dopusti određeni nivo lošeg ulaza i da udobnost korisnika pati ako aplikacije koja ne može sama da interpretira sadržaj.
Iz tog razloga mnoge odredišne aplikacije su dizajnirane da pokušaju da prevaziđu takve greške i identifikuju tačan medija tip.[6][7]
Odredišna aplikacija nema ništa više znanja o tipu dokumenta od izvorne aplikacije i pokušaji da se dokuči tip na odredišnom kraju su podjednako teški ili nemogući. ovo može da dovede do nekompatibilnosti između izvorne i odredišne aplikacije, i u najgorem slučaju do bezbednosnih propusta kao što su: Gifar napad ili Cross-site scripting napad.[8][9]
Za takve situacije predloženi su napedni content sniffing metodi koji balansiraju između prenosivosti i sigurnosti[7]
Lista čestih medija tipova
[уреди | уреди извор]IANA vodi official registry of media types. Neki od medija tipva su:
Preporučeno
[уреди | уреди извор]Reference
[уреди | уреди извор]- ^ а б „Internet Media Type registration, consistency of use”. W3C. 4. 9. 2002. Приступљено 29. 2. 2012.
- ^ „RFC 6648 - Deprecating the "X-" Prefix and Similar Constructs in Application Protocols”. IETF. 2012. Приступљено 7. 10. 2012.
- ^ Freed, N.; Borenstein, N. (1996). „RFC 2045 - Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies”. IETF. Приступљено 29. 11. 2006.
- ^ Freed, N.; Klensin, J.; Postel, J. (1996). „RFC 2048 - Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures, Section 2.1.2 - Vendor Tree”. IETF. Приступљено 5. 12. 2011.
- ^ Freed, N.; Klensin, J. (2005). „RFC 4288 - Media Type Specifications and Registration Procedures”. IETF. Приступљено 14. 6. 2008.
- ^ „MIME Type Detection in Windows Internet Explorer”. Microsoft. Приступљено 14. 7. 2012.
- ^ а б http://mimesniff.spec.whatwg.org/ MIME Sniffing Standard, Living Standard — Last Updated 29 November 2012. Editors Gordon P. Hemsley, Adam Barth, Ian Hickson.
- ^ „CVE-2008-5343 (under review)”. MITRE Corporation. 4. 12. 2008. Приступљено 1. 1. 2013.
- ^ Sudhof, Henry (11. 2. 2009). „Risky sniffing: MIME sniffing in Internet Explorer enables cross-site scripting attacks”. The H. Приступљено 14. 7. 2012.
Spoljašnje veze
[уреди | уреди извор]- IANA MIME media types list
- IANA character sets
- RFC 2045, RFC 2046 - Multipurpose Internet Mail Extensions (MIME), parts 1 and 2
- RFC 4288 - Media Type Specifications and Registration Procedures