दुर्भावनापूर्ण "नेविगेशन की पुष्टि करें" संवाद?


32

कुछ साइट्स, जैसे StackExchange, पॉप अप करती हैं "क्या आप वाकई इस पृष्ठ को छोड़ना चाहते हैं?" जब आप कुछ शर्तों के तहत छोड़ने की कोशिश करते हैं, जैसे कि यदि आपके पास कोई पोस्ट है तो आपने संपादन समाप्त नहीं किया है। यह मददगार है!

दुर्भाग्य से, दुर्भावनापूर्ण या संक्रमित साइटें यह कहने के लिए समान कार्यक्षमता का उपयोग करना पसंद करती हैं, "अरे! आपने 111 वायरस जिन्हें हमने आपके कंप्यूटर पर खोजने के बारे में निश्चित रूप से झूठ नहीं बोल रहे हैं, को संबोधित करने के लिए हमारे मैलवेयर एंटीवायरस को स्थापित नहीं किया है !" और इसे छोड़ दें पृष्ठ "और" इस ​​पृष्ठ पर रहें "विकल्पों को" सुरक्षित रहें। हमारे उत्पाद को स्थापित करें "और" अपने आप को पैर में गोली मारो "जैसे कुछ द्वारा प्रतिस्थापित किया जाता है। यह अनहेल्दी है!

जावास्क्रिप्ट कुछ गंदा सामान कर सकते हैं। जब मुझे उन संवादों में से एक मिलता है जो मुझे स्पष्ट रूप से दुर्भावनापूर्ण साइट छोड़ने से रोकने की कोशिश करते हैं, तो मेरी प्रतिक्रिया क्या होनी चाहिए? क्या "इस पृष्ठ को छोड़ दें" पर क्लिक करना सुरक्षित है या उन्होंने पाठ के साथ जो कुछ भी प्रतिस्थापित किया है? क्या कोई साइट बटन के व्यवहार को बदल सकती है, या अपने स्वयं के नकली संवाद को दूर करने और अपने स्वयं के नकली संवाद को आकर्षित करने के लिए अवरोधन कर सकती है जो कि एक हमलावर को जो भी चाहिए, जब मैं उस पर क्लिक करता हूं?


1
मैं सिर्फ प्रक्रिया एक्सप्लोरर या इसके समकक्ष से पूरे ब्राउज़र की प्रक्रिया को मार डालूंगा। बहुत सुरक्षित है, क्योंकि आप नहीं जानते कि बटन वास्तव में कहता है।
जर्नीमैन गीक

जवाबों:


24

इनमें से कुछ संवादों के बावजूद, वे कुछ भी दुर्भावनापूर्ण नहीं कर सकते । आप किसी भी परिणाम के बिना अपमानजनक पृष्ठ को बंद करने के लिए हमेशा ओके या लीव पेज पर क्लिक कर सकते हैं ।

यदि संवाद बहुत लंबा है और बटन स्क्रीन से दूर हैं , तो आप पृष्ठ को बंद करने की पुष्टि करने के लिए दबाEnter सकते हैं ।

यदि आपके पास कीबोर्ड (टचस्क्रीन डिवाइस) नहीं है, तो नीचे दिए गए बुकमार्कलेट का उपयोग करें या सिंपलसिमन का उत्तर (केवल क्रोम) देखें।


अब, कुछ विवरण।

जब पृष्ठ बंद हो रहा हो तो कुछ कार्य करने का केवल एक ही तरीका है: onbeforeunloadघटना के माध्यम से । बेशक यह आसानी से उपयोगकर्ता के खिलाफ इस्तेमाल किया जा सकता है (उदाहरण के लिए जब वह एक पृष्ठ को बंद करने की कोशिश करता है, तो यह एक नई विंडो में इसकी प्रतिलिपि खोलता है), इसलिए यह बहुत सीमित है।

वास्तव में केवल उचित चीज जो आप कर सकते हैं वह है कस्टम टेक्स्ट और दो बटन के साथ एक डायलॉग, एक पेज छोड़ने के लिए और एक रहने के लिए। केवल एक पृष्ठ जो उस संवाद के साथ कर सकता है, वह है इसका पाठ। बटन और टाइटलबार अपरिवर्तनीय हैं। यहाँ फ़ायरफ़ॉक्स 3.6 से एक स्क्रीनशॉट है: (फ़ायरफ़ॉक्स का बहुत पुराना संस्करण)

फ़ायरफ़ॉक्स 3.6 से स्क्रीनशॉट

बेशक जब आप लोगों को किसी भी पाठ और बस ओके / रद्द बटन के साथ पॉपअप दिखाने देते हैं, तो आप यह सुनिश्चित कर सकते हैं कि जल्द ही या बाद में कुछ लोग आपके खिलाफ इसका इस्तेमाल करेंगे।

फ़ायरफ़ॉक्स 3.6 से एक दुर्भावनापूर्ण विंडो का स्क्रीनशॉट

उपरोक्त स्क्रीनशॉट में ओके का अर्थ है "इस पृष्ठ को छोड़ दें", लेकिन कस्टम विवरण कुछ और बताता है। इसलिए ब्राउज़रों ने संवादों को बदल दिया है इसलिए उन्हें भ्रामक बनाना कठिन है। उदाहरण के लिए फ़ायरफ़ॉक्स के हाल के संस्करणों को कस्टम पाठ को अनदेखा करना प्रतीत होता है:

फ़ायरफ़ॉक्स 23 से स्क्रीनशॉट

Chrome कस्टम पाठ दिखाता है, लेकिन हमेशा एक सवाल पूछता है कि उपयोगकर्ता क्या करना चाहता है और बटन स्पष्ट रूप से उनके कार्यों को बताता है: (लेकिन यह अभी भी "बिल्ली के वीडियो" संदेशों से ग्रस्त है!)

क्रोम 29 से स्क्रीनशॉट

यहां इंटरनेट एक्सप्लोरर 10, "कैट-प्रोन" भी है:

IE 10 से स्क्रीनशॉट

ओपेरा 12 सिर्फ onbeforeunloadघटना को नजरअंदाज करता है और यदि आप उस तरह एक टैब को बंद करने की कोशिश करते हैं, तो यह किसी अन्य की तरह बंद हो जाएगा। मैंने नवीनतम ओपेरा का परीक्षण नहीं किया है, हालांकि।

इसलिए, सबसे महत्वपूर्ण चीजों का योग करने के लिए:

  • पृष्ठ किसी भी पाठ के साथ संवाद नहीं दिखा सकते हैं। वेबसाइट कस्टम टेक्स्ट के साथ संवाद दिखाने के लिए ब्राउज़र से पूछ सकती है, लेकिन ब्राउज़र इसे पूरी तरह से (ओपेरा) अनदेखा कर सकता है, जेनेरिक टेक्स्ट (फ़ायरफ़ॉक्स) का उपयोग कर सकता है या स्पष्ट रूप से कह सकता है कि क्या होगा (क्रोम, IE)।
  • संवाद का विवरण आपके द्वारा उपयोग किए जा रहे ब्राउज़र पर निर्भर करता है, लेकिन बटन हमेशा अपरिवर्तनीय होते हैं। यदि वे स्पष्ट रूप से यह नहीं कहेंगे कि कौन क्या करता है, तो ठीक है "इस पृष्ठ को छोड़ दें * और रद्द करें " यहां रहें "।
  • यदि आप उन्हें छोड़ने का निर्णय लेते हैं तो वेबसाइटें कोई दुर्भावनापूर्ण कार्रवाई नहीं कर सकती हैं। आपकी फ़ाइलों को बिल्ली के वीडियो के साथ नहीं बदला जाएगा, आप 135234 वायरस से भर नहीं पाएंगे और एफबीआई को सूचित नहीं किया जाएगा कि आपके कंप्यूटर पर आपके पास अवैध सॉफ्टवेयर है।

onbeforeunloadयदि आप चाहते हैं कि आप ईवेंट को अक्षम कर सकते हैं , तो प्रभावी रूप से पृष्ठों को छोड़ने या रहने के लिए कहने से रोक सकते हैं। यहाँ एक क्रॉस-ब्राउज़र है userscript । (यदि लिंक मृत है तो नीचे स्क्रॉल करें)

यदि आप एक विशिष्ट वेबसाइट पर हैं जो एक दुर्भावनापूर्ण पॉपअप दिखाता है और आप अभी भी लीव पर क्लिक करने से डरते हैं , तो आप इसे हटाने के लिए एक बुकमार्कलेट बना सकते हैं। अपने बुकमार्क बार पर राइट-क्लिक करें, नया बुकमार्क (या समतुल्य) चुनें और इसे URL के रूप में पेस्ट करें: (यह उपरोक्त लिंक से केवल छोटा कोड है)

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

फिर बस उस बुकमार्क पर क्लिक करें और पॉपअप को सक्रिय पेज से अस्थायी रूप से हटा दिया जाएगा।

यदि आप यह जांचना चाहते हैं कि आपके ब्राउज़र में वो पॉपअप कैसे दिखते हैं या बुकमार्कलेट / यूज़रस्क्रिप्ट का परीक्षण करते हैं, तो निम्न कोड के साथ एक टेक्स्ट फ़ाइल बनाएं और इसे .htmlफ़ाइल के रूप में सहेजें :

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

ऐसा लगता है कि उपयोगकर्ता लिंक अभी मृत है, इसलिए यहां आर्काइव.ऑर्ग कैश से निकाली गई एक कॉपी है । मूल स्क्रिप्ट निर्माता का सारा श्रेय।

// ==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
मैं उस दूसरे पर "ओके" दबाऊंगा। आखिर, कौन बिल्ली वीडियो अधिक नहीं चाहता है?
डैनियल आर हिक्स

ओह, जावास्क्रिप्ट को डायलॉग को डिसेबल करने के लिए। अच्छा!
user2357112

अफसोस की बात है कि कुछ वेब पेजों पर यूजरस्क्रिप्ट विश्वसनीय काम नहीं कर रहा है। संवाद अभी भी window.onbeforeunload और window.onunload के अशक्त होने के बावजूद दिखाया गया है। मुझे नहीं पता कि वे ऐसा करने का प्रबंधन कैसे करते हैं, मुझे लगता है कि हैंडलर को किसी बिंदु पर अधिलेखित कर दिया गया है और फिर कुछ ऑनक्लिक ईवेंट पर वापस शून्य करने के लिए डाल दिया गया है।
एटान

10

दरअसल, फायरफॉक्स का एक निफ्टी (और आसान) समाधान है। यदि आप टाइप करते हैं

about:config

एड्रेस बार में, फिर नीचे स्क्रॉल करें

dom.disable_beforeunload

और इसके मूल्य को सही पर सेट करें अब आप छोड़ें पेज पॉपअप नहीं देखेंगे। फ़ायरफ़ॉक्स में। बहुत बुरा क्रोम में एक समान वर्कअराउंड नहीं है।


7

Chrome में सबसे सरल समाधान टैब को क्रैश करना है।

टाइप क्रोम: // एड्रेस बार में क्रैश करें और बुकमार्क के रूप में सेव करें

अगली बार जब आप ऐसे पृष्ठ को छोड़ना चाहते हैं तो केवल बुकमार्क पर क्लिक करें और यह आपके अन्य टैब को प्रभावित किए बिना, उस टैब को तुरंत मार देगा। पूरे ब्राउज़र सत्र को मारने की आवश्यकता नहीं है क्योंकि कुछ अन्य लोगों ने सुझाव दिया है।

वैकल्पिक रूप से आप क्रोम का उपयोग करके टैब को लटका सकते हैं : // हैंग तो बस किसी भी जावास्क्रिप्ट को चलाने के बिना टैब बंद करें।

यकीन नहीं होता कि यह अन्य ब्राउज़रों में संभव है।


इन पृष्ठों के नए संस्करण माउस-क्लिक या
कीपर

1

यह Window.onbeforeunload इवेंट और वेब ब्राउज़र की एक विशेषता है। तो यह वेब ब्राउज़र का एक निश्चित संवाद होना चाहिए। आप विभिन्न ब्राउज़रों में कोशिश कर सकते हैं और इसलिए आप देख सकते हैं, संवाद अलग-अलग डिज़ाइनों में हैं।

लेकिन मुझे लगता है, आप जावास्क्रिप्ट के साथ एक पॉपअप विकसित कर सकते हैं, जो ब्राउज़र के मूल पॉपअप के समान ही दिखता है। और अगर यह एक अच्छा डेवलपर है, तो वह संवाद दिखाने से पहले ब्राउज़र प्रकार की भी जांच करेगा। ;)

एक मूल संवाद के बारे में बहुत निश्चित होने के लिए, आपको सही डायलॉग के समानांतर क्रॉस-चेक करना चाहिए, यहाँ: http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/onbeforeununload .htm

घटना के बारे में अधिक जानकारी के लिए यहां देखें:
https://developer.mozilla.org/en-US/docs/Web/API/window.onbeforeunload
http://msdn.microsoft.com/en-us/library/ms5n907%% 28VS.85% 29.aspx


0

यदि आप "पॉपअप" और इसके इरादों / कार्यों पर भरोसा नहीं करते हैं तो त्वरित समाधान:

क्रोम के लिए:

  • पॉप-अप को हटाने के लिए बच

  • पेज पर राइट-क्लिक करें

  • निरीक्षण का चयन करें

  • शीर्ष पर स्क्रॉल करें

  • टैग पर राइट-क्लिक करें

  • नोड हटाएं

  • टैब बंद करें

मुझे यकीन है कि अन्य ब्राउज़रों के पास समान विकल्प हैं।


3
त्वरित वर्कअराउंड: हमेशा इस पृष्ठ को छोड़ें क्लिक करें ;)
gronostaj
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.