Bosh sahifa Wiki iframe

iframe

iframe — HTMLdagi <iframe> elementi orqali joriy sahifa ichiga boshqa mustaqil HTML browsing context joylashtirish mexanizmi. Ichki hujjat o‘z URL, tarix, window, DOM va originiga ega. iframe video player, to‘lov oynasi, xarita, reklama yoki izolyatsiyalangan widgetni embed qilishda ishlatiladi. U avtomatik xavfsiz sandbox emas; xatti-harakat origin, sandbox, Permissions Policy va brauzer siyosatlariga bog‘liq.

Yuklash va o‘lcham

src ichki hujjat manzilini, srcdoc esa bevosita HTML mazmunini beradi. loading="lazy" viewportdan uzoq frame’ni kechroq yuklashga yordam beradi. width, height yoki CSS bilan oldindan joy ajratish layout shiftni kamaytiradi. Har iframe alohida hujjat, script, network request va rendering resursi talab qilgani sababli ko‘p frame sahifa xotirasi hamda tezligiga ta’sir qiladi.

Frame ichidagi sahifa o‘z content size’iga qarab ota element balandligini cross-origin holatda bevosita o‘zgartira olmaydi. Ichki sahifa postMessage orqali o‘lchamini yuborishi, parent esa originni tekshirib heightni yangilashi mumkin. Xabar data’si raqam va oqilona chegaraga parse qilinadi.

Same-origin policy

Parent va iframe bir origin bo‘lsa, scriptlar tegishli window hamda DOMga kira oladi. Originlar turli bo‘lsa, same-origin policy DOM o‘qish va ko‘p amallarni cheklaydi. Bu to‘liq aloqa taqiqi emas: navigatsiya, ayrim window reference va postMessage kabi nazoratli kanal mavjud.

postMessage(message, targetOrigin) yuborishda * o‘rniga aniq origin ishlatiladi. Qabul qiluvchi event.origin va kerak bo‘lsa event.sourceni tekshiradi. Xabar JSONga o‘xshash data bo‘lsa ham ishonchsiz input sifatida validationdan o‘tadi. Origin stringni substring yoki suffix bilan noto‘g‘ri tekshirish begona domenni qabul qilishi mumkin.

Sandbox atributi

Bo‘sh sandbox atributi script, form submission, top navigation, popup va boshqa imkoniyatlarni cheklaydi. Kerakli imkoniyatlar tokenlar bilan qayta beriladi, masalan allow-scripts yoki allow-forms. allow-scripts va allow-same-originni bir originli ishonchsiz hujjatga birga berish frame’ga sandbox atributini DOMdan olib tashlash imkonini yaratishi mumkin.

Sandbox originni “opaque origin”ga aylantirishi mumkin, cookie va storage accessini cheklaydi. Biroq ruxsatlar browser versiyasi va tokenlarga bog‘liq. Ishonchsiz faol kontentni asosiy ilova originida srcdoc bilan ko‘rsatish o‘rniga, alohida origin va qat’iy CSP ishlatiladi.

Clickjacking

Tajovuzkor haqiqiy sahifani shaffof iframe ichiga joylab, foydalanuvchini ko‘rinadigan boshqa tugma ustida click qildirishga urinishi mumkin. Himoyalanayotgan sahifa CSP frame-ancestors direktivasi bilan qaysi parent originlar uni embed qila olishini belgilaydi. X-Frame-Options: DENY yoki SAMEORIGIN eski himoya sifatida mavjud.

CSSda frame breaker script yozish ishonchli himoya emas; script bloklanishi yoki sandbox qilinishi mumkin. To‘lov va administrator sahifalari umuman embed talab qilmasa, frame-ancestors 'none' qo‘llanadi. Widget embed qilinishi zarur bo‘lsa, aniq hamkor originlar va qisqa vakolatli sessiya ishlatiladi.

Maxfiylik va imkoniyatlar

Uchinchi tomon iframe cookie va storage siyosatlariga, jumladan third-party cookie cheklovlariga duch keladi. Storage Access API yoki partitioned storage brauzerga qarab ishlashi mumkin. Federativ loginni yashirin iframe orqali bajarishga tayanish privacy himoyalari sabab beqaror bo‘lishi mumkin.

allow atributi va Permissions Policy kamera, mikrofon, geolocation, fullscreen kabi imkoniyatlarni framega delegatsiya qiladi. Parent ruxsat bergani foydalanuvchi permissionini avtomatik bermaydi; ichki origin ham o‘z so‘rovini bajaradi. Minimal kerakli imkoniyatlar aniq beriladi.

Bog‘liq tushunchalar

HTML, Same-origin policy, Sandbox, postMessage, Clickjacking, Content Security Policy, Permissions Policy