2011-12-17 2 views
13

예를 들어 Facebook.com에서 브라우저에 버전 제어 스크립트를 실행하고 스크립트를 사용하여 변경된 HTML 코드를 실행하고 있는지 확인할 수 있습니까?사용자 스크립트를 실행하고 있는지 웹 사이트에서 알 수 있습니까?

캐시에서 HTML 코드를 읽고 서버로 보내지고 클라이언트에 전송 된 코드와 비교되는 해시 태그를 생성 할 수있는 스크립트로 수행 할 수 있습니까?

+0

Facebook은 정적 HTML이 아니므로 해시는 쓸모가 없으므로 impossibru입니다. –

+1

Facebook에서 사용자 스크립트를 감지하고 있다고 생각하는 이유가 있습니까? 그렇다면 왜? 어떻게 생각하세요? –

+3

페이스 북은 사용자 스크립트에 대해 신경 쓰지 않고 사실 자주 사용되는 인터페이스 변경만으로 많은 사용자 스크립트, 특히 적극적으로 유지 관리되지 않는 스크립트를 차단할 수 있습니다. – c69

답변

21

예, 이론적으로 사이트는 다양한 상황에서 스크립트의 존재를 추론 할 수 있습니다.

일반적으로 사이트에 대한 무시 무시한 위협에 너무 많은 문제가 있습니다. (다시, 일부 웹 마스터는 그런 것들에 대해 강박 편집증 환자가 될 수있다.))

어떤 방법, 스크립트가) 특별한 순서없이 (무엇에 따라 :

  1. 게임이나 경매 사이트 수 "입찰"클릭의 타이밍 (속도 및 규칙)을 모니터링하십시오.

  2. 사이트는 AJAX 백작이 말하기를 <script> 노드라고 계산하여 추가 기능을 찾을 수 있습니다.

  3. 마찬가지로 사이트는 페이지 콘텐츠의 일부 또는 전체를 AJAX 백하고 예상 값과 비교할 수 있습니다.

  4. 추가 AJAX 호출 또는 숨겨진 요구 사항을 충족시키지 않는 AJAX 호출을 기록 할 수 있습니다 (성공할 수 있도록 허용).

  5. 스크립트가 unsafeWindow을 오른쪽 (잘못된) 방식으로 사용하는 경우 a page can detect that and even hijack (slightly) elevated privileges입니다.

  6. 마우스 오버 이벤트가 선행되지 않은 "클릭 수"를 감지 할 수 있습니다. 나는 실제로 이것을 야생에서 사용되는 것을 보았습니다.

  7. A page's javascript can often detect script-generated clicks (etc.)은 사용자가 생성 한 것과 다릅니다. (알림 주셔서 감사합니다, c69는.)

궁극적으로, 장점은 그러나, userscript 작가이다. 웹 페이지가 취하는 모든 대응책을 사용자 측에서 감지하고 방해 할 수 있습니다. 사용자 정의 플러그인이나 필수 하드웨어 동글 (dongle)은 숙련되고 의욕적 인 사용자가 회피 할 수 있습니다.

+3

Opera에서 페이지는 이제 (.isTrusted 속성을 통해) 허위 클릭을 탐지 할 수 있습니다. 곧 다른 브라우저에서도 가능할 것입니다. – c69

+2

@ c69, Firefox에서 잠시 동안 가능합니다. (http://help.dottoro.com/ljoljvsn.php) IE9에서는 제한적으로 지원됩니다. –

+1

@MikeOrtiz, 아니요. userscript 자체는 페이지가 볼 수없는 별도의 범위에 있습니다. '@grant none'모드에서도 마찬가지입니다. ... userscript가 노드 '

5

업데이트 : 아래의 방법은 Greasemonkey 3.3으로는 완전히 유효하지 않습니다.



참조 (죽은 링크) How-to Detect Greasemonkey .

자바 스크립트 GM은 를 설치 한 경우 (하지만 스크립트가 실제로 해당 페이지에서 실행 여부를) 감지하는 :

폐기 옵션 1 :

if (Components.interfaces.gmIGreasemonkeyService) { 
    alert("I smell a monkey!"); 
} 


폐기 옵션 2 :

<script type="text/javascript" src="resource://greasemonkey/addons4.js"></script> 
<script type="text/javascript"> 
if (typeof GM_addonsStartup !== "undefined") { 
    alert("I smell a monkey!"); 
} 
</script> 
+0

그래도 유효합니까? – Edge

+1

@Edge, 더 이상 유효하지 않습니다. 업데이트 된 답변을 참조하십시오. –

관련 문제