악의적 인 "탐색 확인"대화 상자?


32

StackExchange와 같은 일부 사이트는 "이 페이지를 떠나시겠습니까?" 게시물이 수정되지 않은 경우와 같이 특정 조건에서 나 가려고 할 때 대화 상자가 나타납니다. 도움이됩니다!

안타깝게도 악성 사이트 나 감염된 사이트는 동일한 기능을 사용하여 "이봐! 귀하의 컴퓨터에서 찾은 것과 관련이없는 111 개의 바이러스를 해결하기 위해 맬웨어 방지 바이러스 백신을 설치 하지 않았습니다!"및 " page "및"이 페이지에 머 무르십시오 "옵션은"안전합니다. 제품을 설치하십시오 "및"발자국을 쏴라 "와 같은 것으로 대체됩니다. 도움이되지 않습니다!

자바 스크립트는 불쾌한 일을 할 수 있습니다. 이 대화 상자 중 하나가 명확하게 악의적 인 사이트를 떠나지 못하게하려는 경우 어떻게해야합니까? "이 페이지를 떠나십시오"또는 텍스트를 대체 한 내용을 클릭해도 안전합니까? 사이트가 버튼의 동작을 변경하거나, 탐색하려는 시도를 가로 채서 클릭 할 때 공격자가 원하는 것을 수행하는 자체 가짜 대화 상자를 그릴 수 있습니까?


1
프로세스 탐색기 또는 해당 기능에서 전체 브라우저 프로세스를 종료합니다. 버튼이 실제로 말하는 것을 알지 못하므로 훨씬 안전합니다.
— Journeyman Geek

답변:


24

이러한 대화 중 일부는 말하지만 악의적 인 작업은 수행 할 수 없습니다 . 언제든지 확인 또는 페이지 나가기를 클릭 하여 결과없이 문제가되는 페이지를 닫을 수 있습니다 .

대화가 너무 길어서 경우 버튼이 화면 밖으로있다 , 당신은 할 수 눌러Enter 페이지를 닫는 확인합니다.

키보드가없는 경우 (터치 스크린 장치) 아래의 북마크를 사용하거나 SimpleSimon의 답변 (Chrome 만 해당)을 참조하십시오 .


이제 몇 가지 세부 사항이 있습니다.

페이지를 닫을 때 onbeforeunload이벤트를 통해 조치를 수행하는 방법은 한 가지뿐입니다 . 물론 이것은 사용자에 대해 쉽게 사용할 수 있습니다 (예를 들어, 페이지를 닫으려고 할 때 새 창에서 사본을 열 때). 매우 제한적입니다.

실제로 할 수있는 유일한 일은 사용자 정의 텍스트와 두 개의 버튼이있는 대화 상자를 여는 것입니다. 하나는 페이지를 떠나고 하나는 유지합니다. 해당 대화 상자로 페이지가 할 수있는 것은 텍스트를 정의하는 것입니다. 버튼과 제목 표시 줄은 변경할 수 없습니다. 다음은 파이어 폭스 3.6에서 스크린 샷입니다 : ( 매우 파이어 폭스의 이전 버전)

Firefox 3.6 스크린 샷

당신이 할 수 물론 사람들과 팝업 보여 어떤 텍스트를 바로 확인 / 취소 버튼을, 당신은 확실히 조만간 어떤 사람이 당신에 대해 그것을 사용하는 것을 할 수있다.

Firefox 3.6의 악성 윈도우 스크린 샷

위의 스크린 샷에서 확인 은 "이 페이지를 떠난다"는 것을 의미하지만 사용자 정의 설명은 더 많은 것을 제안합니다. 따라서 브라우저는 대화 상자를 변경하여 오해의 소지가 더 어렵습니다. 예를 들어 Firefox의 최신 버전은 사용자 정의 텍스트를 무시하는 것 같습니다.

Firefox 23 스크린 샷

Chrome은 맞춤 텍스트를 보여 주지만 항상 사용자에게 무엇을하고 싶은지를 묻는 질문을 추가하고 버튼은 명시 적으로 작업을 표시합니다 (하지만 여전히 "고양이 동영상"메시지가 발생하기 쉽습니다!)

Chrome 29 스크린 샷

다음은 "cat-prone"인 Internet Explorer 10입니다.

IE 10 스크린 샷

Opera 12는 onbeforeunload이벤트를 무시하기 때문에 탭을 닫으려고하면 다른 것과 마찬가지로 닫힙니다. 그래도 최신 Opera는 테스트하지 않았습니다.

따라서 가장 중요한 것을 요약하면 다음과 같습니다.

  • 페이지에 텍스트가있는 대화 상자를 표시 할 수 없습니다. 웹 사이트는 브라우저에 사용자 정의 텍스트가있는 대화 상자를 표시하도록 요청할 수 있지만 브라우저는이를 무시하거나 (Opera), 일반 텍스트 (Firefox)를 사용하거나, 발생할 일을 명시 적으로 말할 수 있습니다 (Chrome, IE).
  • 대화 상자의 세부 사항은 사용중인 브라우저에 따라 다르지만 버튼은 항상 변경할 수 없습니다. 그들이 어떤 일을하는지 명시 적으로 말하지 않는다면, OK 는 "이 페이지를 떠남 *을 의미하고 취소 는"여기에 머 무르십시오 "를 의미합니다.
  • 웹 사이트를 떠나기로 결정하면 악의적 인 작업을 수행 할 수 없습니다. 파일은 고양이 비디오로 대체되지 않으며 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>

사용자 스크립트 링크가 현재 종료 된 것 같습니다. 따라서 archive.org cache 에서 추출한 사본이 있습니다. 원본 스크립트 제작자의 모든 크레딧.

// ==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
두 번째에서 "확인"을 누릅니다. 결국, 누가 더 많은 고양이 비디오를 원하지 않습니까?
— Daniel R은

대화를 비활성화하는 Javascript 좋은!
— user2357112는 Monica

안타깝게도 해당 사용자 스크립트는 일부 웹 페이지에서 안정적으로 작동하지 않습니다. window.onbeforeunload 및 window.onunload가 null 임에도 불구하고 대화 상자가 여전히 표시됩니다. 나는 그들이 어떻게 처리하는지 모른다. 어떤 시점에서 핸들러가 덮어 쓰여지고 onclick 이벤트에서 null로 되돌려 놓았다고 가정한다.
— Atan

10

실제로 FireFox에는 다소 깔끔하고 쉬운 솔루션이 있습니다. 입력하면

about:config

주소 표시 줄로 이동 한 다음

dom.disable_beforeunload

그 값을 True로 설정하면 더 이상 페이지 떠나기 팝업이 표시되지 않습니다. FireFox에서. Chrome에는 비슷한 해결 방법이 없습니다.


7

Chrome에서 가장 간단한 해결책은 탭을 충돌시키는 것입니다.

검색 주소창에 chrome : // crash 를 입력 하고 북마크로 저장합니다 .

다음에 이러한 페이지를 떠나려면 북마크를 클릭하면 다른 탭에 영향을주지 않으면 서 해당 탭이 즉시 종료됩니다. 다른 사람들이 제안한 것처럼 전체 브라우저 세션을 죽일 필요가 없습니다.

또는 chrome : // hang 을 사용하여 탭을 걸고 JavaScript를 실행하지 않고 탭을 닫을 수도 있습니다.

다른 브라우저에서 이것이 가능한지 확실하지 않습니다.


이 페이지의 최신 버전은 마우스 클릭 또는 키 누르기와 같은 사용자 작업에서 다른 팝업을 표시하므로 더 이상 chrome : // crash
— rsaxvc

1

이것은 window.onbeforeunload 이벤트이며 웹 브라우저의 기능입니다. 따라서 이것은 웹 브라우저의 고정 대화 상자 여야합니다. 다른 브라우저에서 시도 할 수 있으므로 대화 상자가 다른 디자인으로되어 있음을 알 수 있습니다.

그러나 자바 스크립트로 팝업을 개발할 수 있다고 가정합니다. 브라우저의 원래 팝업과 매우 유사합니다. 또한 훌륭한 개발자라면 대화 상자를 표시하기 전에 브라우저 유형을 확인해야합니다. ;)

따라서 원래 대화 상자를 확실하게 확인하려면 올바른 대화 상자 (예 : 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


0

"팝업"및 그 의도 / 조치를 신뢰할 수없는 경우 빠른 해결 방법 :

Chrome의 경우 :

  • 팝업을 제거하기 위해 탈출

  • 페이지를 마우스 오른쪽 버튼으로 클릭

  • 검사 선택

  • 맨 위로 스크롤

  • 태그를 마우스 오른쪽 버튼으로 클릭

  • 노드 삭제

  • 탭 닫기

다른 브라우저에도 비슷한 옵션이 있습니다.


3
신속한 해결 방법 : 항상 클릭 휴가에게이 페이지를 )
— gronostaj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.