Framekiller - Framekiller

Bir Çerçeve oluşturucu (veya çerçeve bozucu veya çerçeve kırıcı) tarafından kullanılan bir tekniktir web siteleri ve Web uygulamaları önlemek için internet sayfaları içinde görüntülenmekten çerçeve. Çerçeve, bir Web tarayıcısı penceresinin bir alt bölümüdür ve daha küçük bir pencere gibi davranabilir. Çerçeve oluşturucu genellikle bir web sitesinin bir çerçeve kümesinden izinsiz olarak veya saldırı olarak yüklenmesini önlemek için kullanılır. clickjacking.

Uygulamalar

Çerçeve oluşturucular kullanılarak uygulanır JavaScript bu, geçerli pencerenin ana pencere olup olmadığını doğrular. Önerilen yaklaşım, varsayılan olarak pencerenin oluşturulmasını engellemek ve yalnızca geçerli pencerenin ana pencere olduğunu onayladıktan sonra engeli kaldırmaktır:

<stil>html{Görüntüle:Yok;}</ stil><senaryo>   Eğer (kendini == üst) {       belge.documentElement.stil.Görüntüle = 'blok';    } Başka {       üst.yer = kendini.yer;    }</ script>

Bu yaklaşım 2010 yılında Gustav Rydstedt tarafından önerildi, Elie Bursztein, Dan Boneh ve Collin Jackson, mevcut çerçeve bozma tekniklerinin sınırlamalarının yanı sıra bunları atlamaya izin veren tekniklerin altını çizen bir makalede.[1]

Alternatif çözümler

Alternatif bir seçim, kullanıcının çerçeve düzenleyicinin çalışıp çalışmayacağına karar vermesine izin vermektir.

var Çerçeve oluşturucu = yanlış;pencere.onbeforeunload = işlevi() {   Eğer (Çerçeve oluşturucu) {    dönüş "...";  // kullanıcının karar vermesine yardımcı olan herhangi bir mesaj  }};

ve aşağıdaki kod, çerçeve etiketinden sonra eklenmelidir:

// "my_frame", sayfanızdaki çerçevenin gerçek kimliğine göre değiştirilmelidir belge.getElementById("çerçevem").yükleme = işlevi() {   Çerçeve oluşturucu = doğru;};

Orijinal çerçeve oluşturucular

Tarihsel olarak, ilk framekiller komut dosyaları şu kadar basitti:

<senaryo tip="metin / javascript">  Eğer (üst != kendini) üst.yer.yerine koymak(yer);</ script>

Buradaki mantık, sayfayı görüntülemekti, ancak en üst konumun mevcut sayfayla aynı olup olmadığını kontrol etmek ve değilse, üst kısmı güncel ile değiştirmek. Ancak bu yöntem, çerçeve engelleme komut dosyasının dış çerçeveden yürütülmesini engelleyerek kolayca atlanabilir.[1]

Framekiller sınırlamaları

İstemci tarafı JavaScript çözüm, son kullanıcının tarayıcısının kendi güvenliğini sağlamasına dayanır. Bu, sayfanızın diğer sayfalara gömülmesine izin vermemek için yararlı ancak güvenilmez bir yol haline getirir. Aşağıdaki durumlar yukarıdaki komut dosyasını işe yaramaz hale getirebilir:

  • Kullanıcı aracısı JavaScript'i desteklemiyor.
  • Kullanıcı aracısı JavaScript'i destekliyor ancak kullanıcı desteği kapattı.
  • Kullanıcı aracısının JavaScript desteği hatalı veya kısmen uygulandı.

Anti-framekiller

iframe HTML5'te bir kum havuzu öznitelik.[2] Özniteliğin değeri, iframe'in içeriği için izin verilen bir dizi özelliktir. Değer boşsa veya ayarlanmamışsa, iframe'in içeriği JavaScript'i çalıştırmaz ve üst düzey gezinmeye izin vermez. Belirterek izin verilen komut dosyaları değerdeki boşlukla ayrılmış istisnalar kümesinde, iframe JavaScript'e izin verir, ancak üst düzey gezinmeye yine de izin vermeyerek iframe içindeki çerçeve oluşturucuları yetersiz hale getirir.

Ayrıca bakınız

  • Clickjacking - X-Frame-Options başlığı gibi bir çerçeveye gömülmeyi önlemek için daha karmaşık yöntemleri tartışır

Referanslar

  1. ^ a b G. Rydstedt; E. Bursztein; D. Boneh; C. Jackson (2010). "Çerçeve Bozma: Popüler sitelerdeki Clickjacking Güvenlik Açıkları Üzerine Bir Çalışma". 3. Web 2.0 Güvenlik ve Gizlilik çalıştayı. IEEE.
  2. ^ "Arşivlenmiş kopya". Arşivlenen orijinal 2013-06-06 tarihinde. Alındı 2014-11-01.CS1 Maint: başlık olarak arşivlenmiş kopya (bağlantı)