Kötü amaçlı “gezinmeyi onayla” iletişim kutuları?


32

StackExchange gibi bazı siteler "Bu sayfadan ayrılmak istediğinizden emin misiniz?" Bir yazıya sahipseniz, düzenlemeyi tamamlamadıysanız, belirli koşullar altında bırakmaya çalıştığınızda iletişim Bu yardımcı olur!

Ne yazık ki, kötü amaçlı veya virüslü siteler, "Hey! Kötü amaçlı yazılım virüsten koruma yazılımımızı, bilgisayarınızda kesinlikle bulma konusunda yalan söylemediğimiz 111 virüse karşı yüklemiş değilsiniz!" sayfa "ve" Bu sayfada kalın "seçenekleri" Güvenli olun. Ürünümüzü yükleyin "ve" Ayağınızı vurun "gibi bir şeyle değiştirilir. Bu yararsızdır!

Javascript bazı kötü şeyler yapabilir. Bu diyaloglardan birini beni kötü niyetli bir siteden uzak tutmamaya çalışan bir tane aldığımda cevabım ne olmalı? "Bu sayfayı bırak" ı tıklamak veya metni neyle değiştirmiş olursa olsun güvenli midir? Bir site düğmenin davranışını değiştirebilir mi veya uzaklaşmaya ve saldırganın tıklattığında istediği şeyi yapan kendi sahte iletişim kutusunu çizme girişimi engelleyebilir mi?


1
Tarayıcı sürecinin tamamını işlem gezgininden ya da eşdeğerinden öldürürüm. Çok daha güvenli, çünkü düğmenin gerçekten dediğini bilmiyorsunuz.
Journeyman Geek

Yanıtlar:


24

Bu diyalogların bazılarının söylediğine rağmen, kötü niyetli bir şey yapamazlar . Sorunlu sayfayı herhangi bir sonuç vermeden kapatmak için her zaman Tamam'ı veya Sayfayı Bırak'ı tıklayabilirsiniz .

İletişim kutusu çok uzunsa ve düğmeler ekran kapalıysa , sayfayı kapatmayı onaylamak için basabilirsinizEnter .

Klavyeniz yoksa (dokunmatik ekranlı cihazlar), aşağıdaki yer imini kullanın veya SimpleSimon'un cevabını görün (yalnızca Chrome).


Şimdi, bazı detaylar.

Bir sayfa kapanırken bazı eylemleri gerçekleştirmenin tek bir yolu var: onbeforeunloadetkinlik boyunca . Elbette bu, kullanıcıya karşı kolayca kullanılabilir (örneğin, bir sayfayı kapatmaya çalıştığında, kopyasını yeni bir pencerede açar), bu yüzden çok sınırlıdır.

Aslında yapabileceğiniz en makul şey, özel sayfa ve iki düğmeden oluşan bir iletişim kutusu açmak, biri sayfadan diğeri kalıyor. Bir sayfanın bu iletişim kutusuyla yapabileceği tek şey, metnini tanımlamaktır. Düğmeler ve başlık çubuğu değişmez. İşte Firefox 3.6'dan bir ekran görüntüsü: (Firefox’un çok eski bir sürümü)

Ekran görüntüsü Firefox 3.6 'dan

Tabii ki, herhangi bir metinle ve sadece Tamam / İptal düğmeleri ile pop-up'ları göstermenize izin verdiğinizde, er ya da geç bazı erkeklerin size karşı kullanacağından emin olabilirsiniz.

Firefox 3.6'dan kötü amaçlı pencerelerin ekran görüntüsü

Yukarıdaki ekran görüntüsünde Tamam , sadece "Bu sayfayı bırak" anlamına gelir, ancak özel açıklama daha fazlasını önerir. Böylece tarayıcılar diyalogları değiştirdi, bu yüzden yanıltıcı olmalarını zorlaştırıyor. Örneğin, Firefox’un son sürümleri özel metni görmezden geliyor gibi görünüyor:

Firefox 23'ten ekran görüntüsü

Chrome, özel metni gösterir, ancak kullanıcıya ne yapmak istediğini soran bir soru ekler ve düğmeler açıkça eylemlerini belirtir: (ancak "kedi videoları" iletilerine hala eğilimlidir!)

Chrome 29'dan ekran görüntüsü

İşte Internet Explorer 10, aynı zamanda "kedi eğilimli":

IE 10'dan ekran görüntüsü

Opera 12 onbeforeunloadolayı yok sayar ve böyle bir sekmeyi kapatmaya çalışırsanız, diğerleri gibi kapanır. Yine de en son Opera’yı test etmedim.

Yani, en önemli şeyleri özetlemek için:

  • Sayfalar hiçbir metin içeren iletişim kutularını gösteremez. Web sitesi, tarayıcıdan özel bir metin içeren bir iletişim kutusu göstermesini isteyebilir, ancak tarayıcı tamamen görmezden gelebilir (Opera), genel metin kullan (Firefox) veya açıkça ne olacağını söyleyebilir (Chrome, IE).
  • İletişim kutusunun ayrıntıları kullandığınız tarayıcıya bağlıdır, ancak düğmeler her zaman değiştirilemez. Açıkça hangisinin ne yaptığını söylemezlerse, OK , "bu sayfayı bırak * ve İptal " burada kal " anlamına gelir .
  • Ayrılmaya karar verirseniz, web siteleri herhangi bir zararlı eylem gerçekleştiremez. Dosyalarınız kedi videoları ile değiştirilmeyecek, 135234 virüslere boğulmayacaksınız ve FBI bilgisayarınızda yasadışı bir yazılım olduğu konusunda bilgilendirilmeyecek.

onbeforeunloadSayfaları bırakmanızı veya kalmanızı istemenizi etkili bir şekilde engellemek istiyorsanız etkinliği devre dışı bırakabilirsiniz. İşte bir çapraz tarayıcı usercript . (bağlantı ölü ise aşağı kaydırın)

Eğer gösterileri kötü niyetli bir pop-up ve hala tıklayın korkuyorsun belirli bir web sitesindeki iseniz Ayrıl'a , bunu kaldırmak için bir yer işareti oluşturabilir. Yer imleri çubuğunuzu sağ tıklayın, Yeni yer imi (veya eşdeğeri) seçeneğini seçin ve bunu bir URL olarak yapıştırın: (yukarıdaki bağlantıdan sadece küçük kod)

javascript:var x=document.createElement('script');x.type='text/javascript';x.innerHTML='onbeforeunload=function(){};';document.body.appendChild(x);

Ardından, bu yer imini tıklamanız yeterlidir; açılır pencere aktif sayfadan geçici olarak kaldırılır.

Bu pop-up'ların tarayıcınızda nasıl göründüğünü test etmek veya yer imi / kullanıcı kitabını test etmek istiyorsanız, aşağıdaki kodla bir metin dosyası oluşturun ve bir .htmldosya olarak kaydedin :

<html><body onbeforeunload="return 'My custom text.'">_</body></html>

Kullanıcı bağlantısı şu anda ölü gibi görünüyor, bu yüzden işte archive.org önbelleğinden çıkartılmış bir kopya . Orijinal komut dosyası oluşturucu için tüm kredi.

// ==UserScript==
// @name           Disable - remove onbeforeunload
// @namespace      
// @description    Disable - remove the annoying onbeforeunload event
// @include        *
// @author         netvisiteurs.com
// ==/UserScript==

var x = document.createElement('script');
x.type = 'text/javascript';
x.innerHTML = 'onbeforeunload = function() {};';
document.body.appendChild(x);

2
İkincisinde "Tamam" a basardım. Sonuçta, kim daha fazla kedi videosu istemiyor?
Daniel R Hicks,

Ooh, Javascript iletişim kutusunu devre dışı bırakmak için. Güzel!
user2357112

Ne yazık ki, bu usercript bazı web sayfalarında güvenilir bir şekilde çalışmıyor. Window.onbeununload ve window.onunload'ın null olmasına rağmen iletişim kutusu hala gösteriliyor. Bunu nasıl başardıklarını bilmiyorum, sanırım işleyicinin bir noktada üzerine yazıldığını ve daha sonra belki bazı onclick etkinliğinde boş bırakılacağını düşünüyorum.
Atan,

10

Aslında, FireFox oldukça şık (ve kolay) bir çözüme sahiptir. Yazarsanız

about:config

adres çubuğuna yerleştirin, ardından aşağı

dom.disable_beforeunload

ve değerini True olarak ayarlayın, Artık Sayfa Açılır pencerelerini göremezsiniz. FireFox'ta. Çok yazık, Chrome'da benzer bir geçici çözüm bulunmuyor.


7

Chrome'daki en basit çözüm sekmeyi çökertmektir.

Tip chrome: // kazasında adres çubuğuna ve işareti olarak kaydet .

Bir dahaki sefere böyle bir sayfa bırakmak istediğinizde sadece yer imini tıklayın ve diğer sekmelerinizi etkilemeden o sekmeyi anında öldürür. Bazı tarayıcıların önerdiği gibi tüm tarayıcı oturumunu öldürmeye gerek yok.

Alternatif olarak, chrome: // hang kullanarak sekmeyi askıda bıraktıktan sonra herhangi bir JavaScript çalıştırmadan sekmeyi kapatmanız yeterlidir.

Bunun diğer tarayıcılarda da mümkün olup olmadığından emin değil.


Bu sayfaların daha yeni sürümleri, fare tıklaması veya tuşa
basma

1

Bu, window.onbeforeunload olayı ve web tarayıcısının bir özelliğidir. Yani bu web tarayıcısının sabit bir iletişim kutusu olmalıdır. Farklı tarayıcılarda deneyebilir ve böylece iletişim kutularının farklı tasarımlarda olduğunu görebilirsiniz.

Ancak, javascript ile tarayıcının orijinal açılır penceresine çok benzeyen bir açılır pencere geliştirebileceğinizi varsayalım. Ve eğer iyi bir geliştirici ise, diyaloğu göstermeden önce tarayıcı tipini de kontrol edecektir. ;)

Bu nedenle, orijinal bir iletişim kutusundan çok emin olmak için, doğru iletişim kutusunu paralel olarak çapraz kontrol etmelisiniz, yani burada: http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/onbeforeunload.htm

Etkinlikle ilgili daha fazla bilgi için buraya bakın:
https://developer.mozilla.org/en-US/docs/Web/API/window.onbeforeunload
http://msdn.microsoft.com/en-us/library/ms536907% 28VS.85% 29.aspx


0

"Açılır Pencereye" ve onun amaçlarına / eylemlerine güvenmiyorsanız hızlı çözüm:

Chrome için:

  • Açılır pencereyi kaldırmak için kaçış

  • Sayfada Sağ Tıkla

  • İncele'yi seçin

  • Yukarı kaydır

  • Etikete sağ tıklayın

  • Düğüm Sil

  • Sekmeyi Kapat

Diğer tarayıcıların da benzer seçeneklere sahip olduğundan eminim.


3
Daha hızlı geçici çözüm: her zaman bu sayfayı bırak ;)
gronostaj
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.