Вредоносные диалоги «подтвердить навигацию»?

Некоторые сайты, такие как StackExchange, всплывают «Вы уверены, что хотите покинуть эту страницу?» Когда вы пытаетесь уйти при определенных условиях, например, если у вас есть сообщение, которое вы еще не закончили. Это полезно!

К сожалению, злонамеренные или зараженные сайты любят использовать одну и ту же функциональность, чтобы сказать: «Эй, вы не установили наш антивирус вредоносного ПО, чтобы обратиться к 111 вирусам, которые мы определенно не лжем на вашем компьютере!», И «Оставьте это Страница "и" Остаться на этой странице "заменены чем-то вроде« Будьте в безопасности. Установите наш продукт »и« Стреляйте в ногу ». Это бесполезно!

  • Как изменить светло-серый текст, который многие веб-сайты используют в наши дни?
  • Как заставить все ссылки открываться в браузере рабочего стола?
  • Можем ли мы отключить вкладки в IE8?
  • Заказ Chrome Tab?
  • Предупреждение безопасности Internet Explorer: вы хотите безопасно просматривать только содержимое веб-страницы?
  • Восстановите поведение браузера в среднем клике
  • Javascript может сделать некоторые неприятные вещи. Когда я получаю один из этих диалогов, пытающихся не дать мне явно злонамеренного сайта, каким должен быть мой ответ? Безопасно ли нажать «Оставить эту страницу» или что бы они не заменили текст? Может ли сайт изменять поведение кнопки или перехватывать мою попытку навигации и рисовать собственный фальшивый диалог, который делает то, что хочет злоумышленник, когда я нажимаю на него?

  • Сбросить пароль пользователя жесткого диска, если я знаю мастер-пароль жесткого диска?
  • Internet Explorer 11 не будет работать на определенных сайтах
  • Что лучше для ключей GPG - RSA или DSA?
  • Зачем мне нужно запускать команды как администратор, если моя учетная запись является членом группы администраторов?
  • Как добавить, отредактировать или управлять пользовательскими поисковыми системами в Opera 15 или более поздних версиях (на основе Chromium)?
  • Короткое, легко понятное объяснение GPG / PGP для нетехнических людей?
  • 5 Solutions collect form web for “Вредоносные диалоги «подтвердить навигацию»?”

    Несмотря на то, что говорят некоторые из этих диалогов, они не могут сделать ничего злонамеренного . Вы всегда можете нажать « ОК» или « Оставить страницу», чтобы закрыть страницу с нарушением, без каких-либо последствий.

    Если диалог слишком длинный, и кнопки не отображаются на экране , вы можете нажать Enter, чтобы подтвердить закрытие страницы.

    Если у вас нет клавиатуры (устройства с сенсорным экраном), используйте букмарклет ниже или см . Ответ SimpleSimon (только для Chrome).


    Теперь, некоторые подробности.

    Существует только один способ выполнения некоторых действий при закрытии страницы: через событие onbeforeunload . Конечно, это может быть легко использовано против пользователя (например, когда он пытается закрыть страницу, он открывает свою копию в новом окне), поэтому он очень ограничен.

    Фактически, единственная разумная вещь, которую вы можете сделать, – это открыть диалоговое окно с пользовательским текстом и двумя кнопками, чтобы оставить страницу и один, чтобы остаться. Единственное, что может сделать страница с этим диалогом, – это определить ее текст. Кнопки и заголовок неизменяемы. Вот скриншот из Firefox 3.6: ( очень старая версия Firefox)

    Снимок экрана из Firefox 3.6

    Конечно, когда вы позволяете людям показывать всплывающие окна с любым текстом и просто кнопками ОК / Отмена , вы можете быть уверены, что рано или поздно некоторые ребята будут использовать его против вас.

    Снимок экрана с вредоносными окнами из Firefox 3.6

    На приведенном выше снимке экрана ОК означает просто «Оставить эту страницу», но в пользовательском описании предлагается нечто большее. Таким образом, браузеры изменили диалоги, поэтому сложнее сделать их вводящими в заблуждение. Например, последние версии Firefox, похоже, игнорируют пользовательский текст:

    Снимок экрана из Firefox 23

    Chrome показывает пользовательский текст, но всегда добавляет вопрос, спрашивая пользователя, что он хочет делать, и кнопки явно указывают свои действия: (но он все еще подвержен сообщениям «cat videos»!)

    Снимок экрана из Chrome 29

    Вот Internet Explorer 10, также «кошачий»:

    Скриншот из IE 10

    Opera 12 просто игнорирует событие onbeforeunload и если вы попытаетесь закрыть такую ​​вкладку, она будет закрыта, как и любая другая. Тем не менее, я не тестировал последнюю Opera.

    Итак, суммируем самые важные вещи:

    • Страницы не могут показывать диалоги с любым текстом. Веб-сайт может попросить браузера показать диалог с пользовательским текстом, но браузер может игнорировать его вообще (Opera), использовать общий текст (Firefox) или явно говорить, что произойдет (Chrome, IE).
    • Подробная информация о диалоговом окне зависит от используемого вами браузера, но кнопки всегда неизменны. Если они не скажут явно, что делать, то ОК означает «оставьте эту страницу», а « Отмена » останется «здесь».
    • Веб-сайты не могут совершать какие-либо вредоносные действия, если вы решите оставить их. Ваши файлы не будут заменены видео с cat, вы не будете залиты вирусами 135234, и FBI не будет проинформирован о наличии на вашем компьютере незаконного программного обеспечения.

    Вы можете отключить onbeforeunload событие, если хотите, эффективно не позволяя страницам просить вас уйти или остаться. Вот кросс- браузерский скрипт . (Прокрутите вниз, если ссылка мертва)

    Если вы находитесь на определенном веб-сайте, который показывает вредоносное всплывающее окно, и вы по-прежнему боитесь нажать « Оставить» , вы можете создать букмарклет, чтобы удалить его. Щелкните панель закладок правой кнопкой мыши, выберите « Новая закладка» (или ее эквивалент) и вставьте ее как 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 сейчас мертва, так что вот копия, извлеченная из кеша archive.org . Все кредиты для оригинального создателя сценария.

     // ==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); 

    На самом деле FireFox имеет довольно изящное (и простое) решение. Если вы напечатаете

     about:config 

    В адресную строку, затем прокрутите вниз до

     dom.disable_beforeunload 

    И установите его значение «Истина», вы больше не увидите всплывающие окна «Оставшиеся страницы». В FireFox. Слишком плохо, что в Chrome нет аналогичного обходного пути.

    Простейшим решением в Chrome является сбой вкладки.

    Введите chrome: // сбой в адресной строке и сохранение в качестве закладки .

    В следующий раз, когда вы захотите оставить такую ​​страницу, просто щелкните закладку, и она мгновенно убьет эту вкладку, не затрагивая ваши другие вкладки. Не нужно убивать весь сеанс браузера, как предложили некоторые другие.

    В качестве альтернативы вы можете повесить вкладку с помощью chrome: // hang, а затем просто закрыть вкладку без запуска JavaScript.

    Не уверен, что это возможно в других браузерах.

    Это событие window.onbeforeunload и функция веб-браузера. Таким образом, это должен быть фиксированный диалог веб-браузера. Вы можете попробовать в разных браузерах, и поэтому вы можете видеть, диалоги находятся в разных проектах.

    Но я полагаю, вы могли бы разработать всплывающее окно с javascript, которое выглядит очень похоже на оригинальное всплывающее окно браузера. И если это хороший разработчик, он также будет проверять тип браузера, прежде чем показывать диалог. 😉

    Поэтому, чтобы быть уверенным в оригинальном диалоговом окне, вы должны перекрестно проверить правильный диалог, то есть здесь: http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/onbeforeunload.htm

    См. Здесь дополнительную информацию о мероприятии:
    https://developer.mozilla.org/en-US/docs/Web/API/window.onbeforeunload
    http://msdn.microsoft.com/en-us/library/ms536907%28VS.85%29.aspx

    Быстрое обходное решение, если вы не доверяете «всплыванию» и его намерениям / действиям:

    Для Chrome:

    • Escape для удаления всплывающих окон

    • Щелкните правой кнопкой мыши на странице

    • Выберите Inspect

    • Прокрутите вверх

    • Щелкните правой кнопкой мыши по тегу

    • Удалить узел

    • Закрыть вкладку

    Я уверен, что другие браузеры имеют аналогичные варианты.

    Давайте будем гением компьютера.