Tarkib Marketing

Iframe buzilishi: Kontentingizning ruxsatsiz iframingini qanday to'xtatish mumkin

Bir marta mening saytimga tashrif buyurgan kishi mening havolalarimdan birini bosganida menga xabar berdi Twitter; u mening saytimga katta qalqib chiquvchi oyna va zararli kod ogohlantirishi bilan olib kelingan. Bu kimnidir qo'rqitish uchun etarli, shuning uchun men test qilishni boshladim. Mening saytimda hech qanday yomon narsa yo'q edi - muammo havola edi.

Boshqa saytdagi havola yuqoridagi asboblar panelini yaratdi, bu odamlarni mening saytimni ostidagi iframe-ga yuklayotganda zararli havolani bosishga undaydi. Aksariyat odamlar uchun mening saytim zararli kodni tarqatayotgandek tuyulishi mumkin. Men saytimni iframe ichida yuklaydigan har qanday saytni yoqtiraman deb aytmagan bo'lardim, shuning uchun men har qanday aqlli geek qiladigan ishni qildim… Men ramka to'xtatuvchisini yukladim.

Saytingizni iframing qilish har doim ham zararli emas. Biz yaqinda bir vositani ulashdik, Sniply, harakatga chaqiruv qo'shish uchun (CTA) siz baham ko'rgan har qanday veb-sayt havolasiga. Buni butun saytingizni iframe-ga joylashtirish va harakatga chaqiruv bilan tarkibingizga div-ni qo'llash orqali amalga oshiriladi.

Lekin men o'z mazmunim va sarflagan sa'y-harakatlarim haqida juda aniqman Martech Zone, shuning uchun hech kim mening kontentimni iframe qilishini xohlamayman, hatto havolani almashish platformasi bilan ham. Ba'zi tadqiqotlar olib borishda, buni hal qilishning bir qancha usullari mavjud.

Tarkibingizni JavaScript yordamida Iframingni qanday to'xtatish mumkin

Ushbu JavaScript kodi joriy oyna (self) eng yuqori oyna emas (top). Agar shunday bo'lmasa, bu sahifa freymda, iframe yoki shunga o'xshashda ekanligini bildiradi va skript eng yuqori oynani quyidagiga yo'naltiradi. URL joriy oynadan. Bu samarali chiqib ketadi iframe-dan.

<script type='text/javascript'>
if (top !== self) top.location.href = self.location.href;
</script>

Ushbu yondashuvning bir nechta salbiy tomonlari mavjud:

  1. JavaScript-ga ishonish: Agar foydalanuvchi JavaScript-ni o'chirib qo'ygan bo'lsa, bu usul ishlamaydi.
  2. Kechikishlar: JavaScript-ni ishga tushirishdan oldin biroz kechikish bo'lishi mumkin, bu vaqt davomida saytingizning ramkali versiyasi hali ham ko'rinib turishi mumkin.
  3. Oʻzaro kelib chiqish cheklovlari: Ba'zi hollarda, bir xil kelib chiqish siyosati ushbu skriptning mo'ljallanganidek ishlashiga to'sqinlik qilishi mumkin. Agar asosiy hujjat boshqa domenda bo'lsa, unga kira olmasligi mumkin top.location.href.
  4. Frame-Busting-Busters uchun potentsial: Bundan tashqari, freymni buzish skriptlarining ishlashiga to'sqinlik qiladigan skriptlar (frame-busting-busters deb ataladi) mavjud.

Eng yaxshi yondashuv HTTP javob sarlavhalaridan foydalanishdir.

X-Frame-Options va Kontent-Xavfsizlik-Siyosat

har ikkala X-Frame-Options va Content-Security-Policy (CSP) veb-sayt xavfsizligini oshirish uchun ishlatiladigan HTTP javob sarlavhalari. Ularning har biri biroz boshqacha maqsadlarga xizmat qiladi va turli darajadagi moslashuvchanlikka ega.

X-Frame-Options saytingiz a.ga oʻrnatilishi mumkinligini nazorat qilish uchun maxsus ishlab chiqilgan eski HTTP sarlavhasi <frame>, <iframe>, <embed>yoki <object> boshqa saytda. U uchta mumkin bo'lgan direktivaga ega:

  1. DENY – Qaysi sayt buni qilishga urinayotganidan qat’i nazar, sahifani ramkada ko‘rsatib bo‘lmaydi.
  2. SAMEORIGIN – Sahifani faqat sahifaning o‘zi bilan bir xil kelib chiqishi bo‘yicha ramkada ko‘rsatish mumkin.
  3. ALLOW-FROM uri – Sahifani faqat belgilangan joydagi ramkada ko‘rsatish mumkin.

Shu bilan birga, X-Frame-Options Cheklangan, chunki u murakkabroq stsenariylarni bajara olmaydi, masalan, bir nechta turli manbalardan ramka yaratishga ruxsat berish yoki pastki domenlar uchun joker belgilardan foydalanish. Barcha brauzerlar qo'llab-quvvatlamaydi ALLOW-FROM direktiv.

Content-Security-Policy, boshqa tomondan, ancha moslashuvchan va kuchli HTTP sarlavhasi. Vaholanki, u hamma narsani qila oladi X-Frame-Options va yana ko'p narsalarni qila oladi, uning asosiy maqsadi saytlararo skriptlarni o'z ichiga olgan keng ko'lamli kodni kiritish hujumlarining oldini olishdir (XSS) va klik qilish. U ishonchli kontent manbalarining oq ro'yxatini (skriptlar, uslublar, tasvirlar va boshqalar) belgilash orqali ishlaydi.

Kadrlarni boshqarish uchun CSP dan foydalanadi frame-ancestors direktiv. Siz bir nechta manbalarni, jumladan, bir nechta domenlarni va joker belgilar subdomenlarini belgilashingiz mumkin. Mana bir misol:

cssCopy codeContent-Security-Policy: frame-ancestors 'self' yourdomain.com *.domain2.com;

Bu sahifani o'z saytida ramkalash imkonini beradi ('self'), ustida yourdomain.com, va istalgan subdomenida domain2.com.

CSP o'rniga tavsiya etilmoqda X-Frame-Options, chunki u hamma narsani hal qila oladi X-Frame-Options qila oladi va boshqalar. Ko'pgina zamonaviy brauzerlar CSP-ni qo'llab-quvvatlasa-da, uni to'liq qo'llab-quvvatlamaydigan eski yoki kamroq tarqalgan brauzerlar bo'lishi mumkin.

Kontentingizni HTML bilan Iframingni qanday to'xtatish mumkin

Endi kontent-xavfsizlik-politika meta-tegi mavjud bo'lib, u kontentingizni iframe qilish imkoniyatini o'chiradi:

<meta http-equiv="Content-Security-Policy" content="frame-ancestors 'self' yourdomain.com">

HTML meta tegining samaradorligi cheklangan, chunki hamma brauzerlar ham ni hurmat qilmaydi Content-Security-Policy meta teg yordamida o'rnatilganda.

Kontentingizni HTTP sarlavhalari bilan iframingni qanday to'xtatish mumkin

HTTP sarlavhalarini ishlatish yaxshiroqdir X-Frame-Options or Content-Security-Policy ramkani boshqarish uchun. Bu variantlar ishonchliroq va xavfsizroq va hatto JavaScript o'chirilgan bo'lsa ham ishlaydi. Agar HTTP sarlavhalarini o'rnatish uchun server ustidan nazoratingiz bo'lmasa, JavaScript usuli faqat oxirgi chora sifatida ishlatilishi kerak. Har bir misol uchun almashtiring yourdomain.com haqiqiy domeningiz bilan.

Apache - O'zingizni o'zgartiring .htaccess faylni quyidagicha:

Header always set X-Frame-Options SAMEORIGIN
Header always set Content-Security-Policy "frame-ancestors 'self' yourdomain.com"

nginx – Server blokini quyidagicha o‘zgartiring:

add_header X-Frame-Options SAMEORIGIN;
add_header Content-Security-Policy "frame-ancestors 'self' yourdomain.com";

IIS - buni o'zingizning ilovangizga quyidagini qo'shish orqali bajaring web.config fayl:

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Content-Security-Policy" value="frame-ancestors 'self' yourdomain.com" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

WordPress – buni functions.php faylingizga ushbu kodni qo‘shish orqali bajaring:

function add_security_headers() {
  header('X-Frame-Options: SAMEORIGIN');
  header("Content-Security-Policy: frame-ancestors 'self' yourdomain.com");
}
add_action('send_headers', 'add_security_headers');

Ushbu konfiguratsiyalar sizning sahifangizni har qanday domen subdomenlarida emas, balki siz ko'rsatgan aniq domendagi iframe-larga joylashtirish imkonini beradi. Agar siz ba'zi subdomenlarga ruxsat bermoqchi bo'lsangiz, ularni aniq ro'yxatlashingiz kerak, masalan subdomain1.yourdomain.com subdomain2.yourdomain.com, va hokazo.

Kontentingizni bir nechta domenlardan iframing qilishga ruxsat bering

Content-Security-Policy HTTP javob sarlavhasi va ramka-ajdodlar direktivasi bilan bir nechta domenlarni belgilashingiz mumkin. Bo'sh joy har bir domenni ajratishi kerak. Mana bir misol:

Content-Security-Policy: frame-ancestors 'self' domain1.com domain2.com domain3.com;

Apache - O'zingizni o'zgartiring .htaccess faylni quyidagicha:

Header always set X-Frame-Options SAMEORIGINHeader always set Content-Security-Policy "frame-ancestors 'self' domain1.com domain2.com domain3.com"

nginx – Server blokini quyidagicha o‘zgartiring:

add_header X-Frame-Options SAMEORIGIN;add_header Content-Security-Policy "frame-ancestors 'self' domain1.com domain2.com domain3.com";

IIS - buni o'zingizning ilovangizga quyidagini qo'shish orqali bajaring web.config fayl:

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
      <add name="Content-Security-Policy" value="frame-ancestors 'self' domain1.com domain2.com domain3.com" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

Kontentingizni joker belgilar domenidan iframing qilishga ruxsat bering

Bundan tashqari, barcha subdomenlar uchun joker belgini belgilashingiz mumkin Content-Security-Policy HTTP javob sarlavhasi va ramka-ajdodlar direktivasi. Mana misollar Content-Security-Policy yangilanishi kerak bo'lgan kod:

Content-Security-Policy: frame-ancestors 'self' *.yourdomain.com;

Apache - O'zingizni o'zgartiring .htaccess faylni quyidagicha:

Header always set Content-Security-Policy "frame-ancestors 'self' *.yourdomain.com"

nginx – Server blokini quyidagicha o‘zgartiring:

add_header Content-Security-Policy "frame-ancestors 'self' *.domain1.com *.domain2.com *.domain3.com";

IIS - buni o'zingizning ilovangizga quyidagini qo'shish orqali bajaring web.config fayl:

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Content-Security-Policy" value="frame-ancestors 'self' *.yourdomain.com" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

Douglas Karr

Douglas Karr ning CMO hisoblanadi OpenINSIGHTS va asoschisi Martech Zone. Duglas o'nlab muvaffaqiyatli MarTech startaplariga yordam berdi, Martechni sotib olish va investitsiyalarida 5 milliard dollardan ortiq mablag'ni sinchkovlik bilan tekshirishda yordam berdi va kompaniyalarga savdo va marketing strategiyalarini amalga oshirish va avtomatlashtirishda yordam berishda davom etmoqda. Duglas xalqaro miqyosda tan olingan raqamli transformatsiya va MarTech mutaxassisi va ma'ruzachisi. Duglas, shuningdek, Dummie's qo'llanmasi va biznes rahbariyati kitobining nashr etilgan muallifi.

Haqida Maqolalar

Yuqoriga qaytish tugmasi
yaqin

Adblock aniqlandi

Martech Zone Sizga ushbu kontentni hech qanday to'lovsiz taqdim eta oladi, chunki biz saytimizni reklama daromadlari, sheriklik havolalari va homiylik orqali monetizatsiya qilamiz. Saytimizni ko'rayotganingizda reklama blokeringizni olib tashlasangiz, biz juda minnatdormiz.