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


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.