IFRAME için içerik, güvenlik ve tasarım özellikleri
Öğe, diğer Web sayfalarını doğrudan Web sayfanıza yerleştirmenize izin verir. Ancak iframe'leri kullanırken , HTML 4.01'de ele alınmayan bazı güvenlik ve tasarım sorunları vardır. HTML5, bu endişelere yardımcı olmak için bu öğeye üç yeni özellik kazandırır:
Sandbox Niteliği
IFRAME öğesinin sandbox özniteliği, iframe'lerin çok kullanışlı bir güvenlik özelliğidir. Bir IFRAME öğesine yerleştirdiğinizde, kullanıcı aracısına siteye ve kullanıcılarına yönelik bir güvenlik riski oluşturabilecek özelliklere izin vermemesini bildirirsiniz.
Örneğin:
Tarayıcıya, güvenlik riski olabilecek tüm özelliklere izin vermemesini söyler. Özellikle, eklentilere izin verilmez. Formlar gönderilemez. Sscripts çalışmaz ve IFRAME dışındaki bağlantılara izin verilmez. Son olarak, çerezlere, yerel depolamaya ve aynı alandaki (kaynak) diğer sayfalara erişim izni verilmez.
Ardından, sanal alan anahtar kelime değerlerini kullanarak, bazı özellikleri yeniden etkinleştirebilirsiniz. Bu anahtar kelimeler:
- izin formları - form gönderimini
- allow-same-origin - aynı orijinal alandaki çerezler gibi içeriğe erişmek için komut dosyaları
- allow-scripts — bu IFRAME içinde çalıştırılacak komut dosyaları
- izin ver üstte gezinme - IFRAME bağlantılarını ve komut dosyalarını _top hedefine ulaştır
Aynı IFRAME üzerinde hem komut dosyalarını hem de izin veren aynı anahtar sözcükleri birlikte ayarlamak iyi bir fikir değildir. Bunu yaparsanız, gömülü sayfa daha sonra tüm güvenlik avantajlarını geçersiz kılarak sanal alan özelliğini tamamen kaldırabilir.
Srcdoc Özniteliği
Srcdoc özniteliği, Web tasarımcısına iframe'ler ve daha fazla güvenlik konusunda daha fazla denetim sağlayan bir özniteliktir. Farklı bir URL'de bir Web sayfasına bağlantı vermek yerine, Web tasarımcısı, srcdoc özniteliğinde bir IFRAME içinde görüntülenecek HTML'yi yerleştirir.
İlk başta, “Bu HTML'yi sayfaya doğru koymaktan nasıl farklıdır?” Diye düşünüyor olabilirsiniz. Ve bazı yönlerden çok farklı değildir.
Ancak, IFRAME öğesinin işlevlerinden birini, güvenilmeyen verileri sitenin geri kalanından ayrı tutmaktır.
Bir form gibi güvenilmeyen bir kaynak tarafından oluşturulan HTML'yi bir IFRAME içine yerleştirerek, güvenilmeyen içeriği “koruyabilir” ve sayfada görünmesini sağlayabilirsiniz. Blog yorumları bir örnektir. Blogların çoğunda yorum yapanların yorumlarında kullanabilecekleri sınırlı sayıda HTML etiketi bulunur. Ancak, bu yorumları srcdoc özniteliğini kullanarak korumalı bir IFRAME içine yerleştirerek, yorumlar siteyi bir bütün olarak korurken daha güçlü olabilir.
Güvenlik ve Iframe'ler
Yukarıdaki iki özellik, IFRAME öğeleriniz için güvenlik sağlar, ancak tüm kötü amaçlı sitelere karşı bir kanıt değildir. Kötü amaçlı site bir kullanıcıyı doğrudan düşmanca içeriğe erişmeye ikna edebilirse (URL’yi tarayıcılarına yazarak), yine de saldırıya uğrayabilirler.
Mümkünse, korumalı IFRAME içerisindeki içeriği metin / html-sandboxed MIME türü olarak ayarlamak en iyisidir.
Kesintisiz Öznitelik
Kesintisiz öznitelik, tarayıcının IFRAME'i üst belgenin bir parçası gibi göstermesini söyleyen bir boole özniteliğidir. IFRAME öğenizin sorunsuz bir şekilde görüntülenmesini istiyorsanız, bu özelliği öğeye eklemeniz yeterlidir:
Ancak IFRAME'ın sorunsuz olmasını sağlamak, yalnızca görünümden daha fazlasıdır, aynı zamanda sayfanın çerçeve ile nasıl etkileştiği de odur. Örneğin:
- IFRAME sayfası hedef _SELF ayarına sahip olmadıkça, IFRAME içindeki bağlantılar ana pencerede açılır.
- IFRAME içindeki CSS, tüm belgenin çağlayanına eklenecektir.
- IFRAME sayfasının kök öğesi, IFRAME adlı çocuğun bir alt öğesi olarak kabul edilir.
- IFRAME'in genişliği ve yüksekliği, diğer blok düzeyindeki öğelerin nasıl ayarlanacağıyla benzer şekilde ayarlanır.
- Üst belge bir ekran okuyucu gibi bir konuşma işleme aracı tarafından görüntülendiğinde, IFRAME ayrı bir belge olarak bildirilmeden okunur.
- Üst belgede bulunan komut dosyaları IFRAME belgesini aynı şekilde etkiler. Örneğin, bir komut dosyası sayfadaki tüm çerçeveleri listelediyse, IFRAME içindeki bağlantılar da listelenir.
Başka bir deyişle, sorunsuz öznitelik sadece IFRAME'den sınırları kaldırmaktan çok daha fazlasını yapar. IFRAME'i sorunsuz olarak ayarlayacaksanız, içeriğinden çok emin olmalısınız, böylece kötü amaçlı bir site yerleştirerek web sitenize herhangi bir güvenlik riski eklemezsiniz.