Sadržaj, sigurnost i atribute dizajna za IFRAME
Element vam omogućuje ugradnju drugih web stranica izravno na vašu web stranicu. No, kada koristite iframeove, postoje sigurnosni i dizajnni problemi koji nisu riješeni u HTML 4.01. HTML5 donosi tri nova atributa ovom elementu kako bi pomogao u rješavanju tih problema:
Atribut sandboxa
Atribut sandboxa IFRAME elementa vrlo je korisna sigurnosna značajka iframeova. Kada ga stavite u IFRAME element, uputite korisničkom agentu da onemogućuje značajke koje mogu uzrokovati sigurnosni rizik za web mjesto i njegove korisnike.
Na primjer:
Preporuča pregledniku da odbije sve značajke koje bi mogle predstavljati sigurnosni rizik. Konkretno, dodatke se ne odobravaju. Obrasci se ne mogu slati. Sscripts neće raditi i veze izvan IFRAME nisu dopuštene. Konačno, pristup kolačićima, lokalnoj pohrani i drugim stranicama na istoj domeni (porijeklu) nije dopušten.
Zatim pomoću vrijednosti ključne riječi sandboxa možete ponovo omogućiti neke od značajki. Ove ključne riječi su:
- dopuštaju obrasce - dopuštaju slanje obrasca
- dopustiti "skriptama istog podrijetla" za pristup sadržaju kao što su kolačići s istog podrijetla domene
- allow-scripts - dopuštanje skripti u ovom IFRAME
- allow-top-navigation - dopuštaju IFRAME veze i skripte na _top cilj
Nije dobro postaviti obje dopuštene skripte i omogućiti istovjetne ključne riječi zajedno na istom IFRAME. Ako to učinite, umetnuta stranica može u potpunosti ukloniti atribut pješčaniku, negirajući bilo kakve sigurnosne prednosti.
Atribut srcdoc
Atribut srcdoc je atribut koji daje web dizajneru veću kontrolu nad iframovima, kao i više sigurnosti. Umjesto povezivanja s web stranicom na drugi URL, web dizajner postavlja HTML koji će se prikazati u IFRAME unutar srcdoc atributa.
U početku biste mogli misliti: "Kako se to razlikuje od stavljanja HTML-a na stranicu?" I na neki način, to nije jako drugačije.
No, morate imati na umu jednu od funkcija IFRAME elementa, što znači da se neizvršeni podaci razlikuju od ostatka web mjesta.
Stavljanjem HTML-a koji je stvoren nepouzdanim izvorom, kao što je obrazac, u IFRAME možete "pješčano sandučić" obezbijediti nepouzdani sadržaj i još uvijek ga prikazati na stranici. Komentari na blog primjer su. Većina blogova ima samo ograničeni broj HTML oznaka koje komentatori mogu koristiti u svojim komentarima. No, postavljanjem tih komentara u pješčani krug IFRAME pomoću atributa srcdoc, komentari mogu biti robusniji i istodobno zaštititi web mjesto kao cjelinu.
Sigurnost i Iframes
Gornja dva atributa pružaju sigurnost vašim IFRAME elementima, ali nisu dokazi protiv svih zlonamjernih web-lokacija. Ako zlonamjerna web-lokacija može uvjeriti korisnika da izravno pristupi sadržaju neprijateljskog sadržaja (npr. Upisivanjem URL-a u svoj preglednik), i dalje se mogu napasti.
Ako je moguće, najbolje je postaviti sadržaj koji se nalazi u pješčanoj kutiji IFRAME kao tekstualni / html-sandboxed MIME tip.
Besprijekoran atribut
Besprijekoran atribut je atribut boolean koji govori pregledniku da prikazuje IFRAME kao da je dio roditeljskog dokumenta. Ako želite da vaš IFRAME neprimjetno prikaže, uključite ovaj atribut u element:
No, stvaranje IFRAME bešavnih je više nego samo izgled, to je i način na koji stranica interakciju s okvirom. Na primjer:
- Veze u IFRAME otvorit će se u roditeljskom prozoru , osim ako stranica IFRAME nema ciljni _SELF skup.
- CSS u IFRAME bit će dodan u kaskadu cjelokupnog dokumenta.
- Korijen element IFRAME stranice smatra se dijete IFRAME.
- Širina i visina IFRAME postavljena su na sličan način kako bi se postavili drugi elementi na razini bloka .
- Kada se roditeljski dokument pregleda pomoću alata za izradu govora kao čitač zaslona, IFRAME bi se pročitao bez najave kao zasebni dokument.
- Sve skripte na roditeljskom dokumentu utjecale bi na IFRAME dokument na isti način. Na primjer, ako je skripta na popisu svih okvira na stranici, navedeni su i veze u IFRAME.
Drugim riječima, besprijekoran atribut mnogo više nego samo ukloniti granice od IFRAME. Ako namjeravate postaviti IFRAME, trebali biste biti sigurni u sadržaj kako ne biste dodali sigurnosni rizik na svoju web lokaciju ugrađivanjem zlonamjerne web lokacije.