JavaScript: 우리는 스크립트를 눈에 띄지 않게 숨깁니다. 예제와 같은 것 스크립트 디버깅을 위해 페이지의 소스 코드를 보는 방법
JavaScript: 눈에 띄지 않도록 스크립트 숨기기
- 목재실 *
비현실적으로 아름다운 메뉴 모양을 구현하거나 매 두 번째 사이트에서 곧 보고 싶지 않은 다른 작업을 수행하는 스크립트의 페이지에서 낯선 사람에게 숨기고 싶었던 적이 있습니까?
그렇다면 이 기사에서 설명하는 방법이 코드 난독화와 함께 유용할 것입니다. 동시에 그 방법이 100%는 아니지만 대부분의 비전문가들과 일부 전문가들로부터 보호받을 수 있다는 점에 대해선 바로 유보하겠습니다.
이론
숨겨야 하는 secret.js 스크립트가 있는 nojs.php 페이지가 있다고 가정해 보겠습니다. 브라우저와 사용자는 다음과 같은 방법으로 서버에서 스크립트를 가져올 수 있습니다.- 페이지에 직접 배치되거나 DOM을 사용하여 로드된 스크립트 로드
- 창에서 스크립트 보기 페이지의 소스 코드;
- 모든 파일이 있는 페이지를 하드 드라이브에 저장합니다.
- 주소 표시줄에 직접 URL을 입력합니다.
두 번째 및 세 번째 경우에는 모든 브라우저에서 전송되지 않습니다(Chrome, FireFox는 캐시에서 이전에 로드된 스크립트를 발행하고 Opera, IE는 스크립트를 다시 다운로드하지만 참조자를 보내지 않음).
네 번째 경우에는 4개의 브라우저에서 참조자를 전달하지 않습니다.
요청에 리퍼러 헤더가 있는지 확인하여 JavaScript를 동적으로 발행하면 Opera와 IE로부터 즉시 자신을 보호할 수 있지만 Crome과 Firefox의 경우 까다로운 문제를 해결해야 합니다. 먼저 하나의 스크립트를 다운로드하고 다른 스크립트를 다운로드하고 두 다운로드 모두 http-referer가 있는지 확인합니다. document.createElement("스크립트") 페이지에서 스크립트를 동적으로 생성한 다음 페이지에서 삭제하면 스크립트가 평소와 같이 작동하지만 저장되지 않는다는 것이 과학적으로 입증되었습니다.
관행
nojs.php
이 페이지는 script1.php를 다운로드하는 것을 목표로 합니다.header("Content-Type:text/html;charset=utf-8"); ?>
10초 후, 숨겨진 스크립트의 작업이 알레르기 형태로 표시되어야 하며, 이벤트도 떨어지지 않았는지 확인하기 위해 경고 후 링크를 클릭합니다. 이 링크를 통해 숨겨진 스크립트를 볼 수 있습니다.