ふたりで

개발자 도구 차단 1, Detect browser developer tools by javascript 1 (chrome, firefox, Edge) 본문

javascript

개발자 도구 차단 1, Detect browser developer tools by javascript 1 (chrome, firefox, Edge)

graykang 2022. 10. 6. 20:09
728x90
반응형
SMALL

나름 개발자 도구를 막아 보겠다고 구글링 하며 테스트한 결과 결론은 못 막는다입니다...

아래 소스는 참고 정도만 하시길... 브라우저의 메뉴를 통한 개발자 도구 열기는 막을 수 없다는...

거기다 개발자도구 감지 부분도 무력화시키는 방법이 있음;;;

( 완벽하게?? 막아지는 것 같은 방법이 있어 아래 링크를 추가합니다.)

728x90
반응형
SMALL
<script type="text/javascript">
$(document).ready(function(){
	//마우스 메뉴 막기
		if (window.addEventListener) {
			window.addEventListener('contextmenu', function(e) { try { if (typeof e != 'undefined') { e.preventDefault(); return false; } else { return false; }} catch(e) {} } , false);
		} else {
			window.attachEvent('oncontextmenu', function(e) { try { if (typeof e != 'undefined') { e.preventDefault(); return false; } else { return false; }} catch(e) {} } );
		}
		var handlemouseEvent = function(e) {
			try {
				if (typeof e == 'undefined') {
					if (window.event.button && window.event.button == "2") {
						return false;
					}
				} else if ((e.which && e.which == 3) || (e.button && e.button == 2)) {
					e.preventDefault();
					return false;
				}

			} catch (e) {}
		};
		window.onkeydown = handlemouseEvent;
		window.onkeyup = handlemouseEvent; 
	//-
    //개발자도구 열었을 경우 debugger를 이용한 감지  
		function detectDevTool(allow) {
		  var a = false;
		  if(isNaN(+allow)) allow = 100;
		  var start = +new Date(); // Validation of built-in Object tamper prevention.
		  debugger;
		  //console.log('%c', devtools);
		  var end = +new Date(); // Validates too.
		  if(isNaN(start) || isNaN(end) || end - start > allow) {
		    // input your code here when devtools detected.
			  		alert("개발자도구 사용 금지!!!!!");
                    //알럿후 확~!! 로그아웃 시켜 버리기
			 	 	var logOutFrom = document.createElement('form');
			 	 	logOutFrom.name= "logOutFrom";
			 	 	logOutFrom.id= "logOutFrom";
			 	 	logOutFrom.action = ctx+"/logout";
			 	 	logOutFrom.method= "POST";
			 	 	var input = document.createElement('input');
			 	 	input.type = 'hidden';
			 	 	input.name = '${_csrf.parameterName}';
			 	 	input.value = '${_csrf.token}';
			 	 	logOutFrom.appendChild(input);
			 	 	document.body.appendChild(logOutFrom);
			 	 	logOutFrom.submit();

		  }
		}
		if(window.attachEvent) {
		  if (document.readyState === "complete" || document.readyState === "interactive") {
		      detectDevTool();
		    window.attachEvent('onresize', detectDevTool);
		    window.attachEvent('onmousemove', detectDevTool);
		    window.attachEvent('onfocus', detectDevTool);
		    window.attachEvent('onblur', detectDevTool);
		  } else {
		      setTimeout(argument.callee, 0);
		  }
		} else {
		  window.addEventListener('load', detectDevTool);
		  window.addEventListener('resize', detectDevTool);
		  window.addEventListener('mousemove', detectDevTool);
		  window.addEventListener('focus', detectDevTool);
		  window.addEventListener('blur', detectDevTool);
		}
		//-
 });
 
 // Detect Key Shortcuts
 window.addEventListener('keydown', function(e) {
     if (
         // CMD + Alt + I (Chrome, Firefox, Safari)
         e.metaKey == true && e.altKey == true && e.keyCode == 73 ||
         // CMD + Alt + J (Chrome)
         e.metaKey == true && e.altKey == true && e.keyCode == 74 ||
         // CMD + Alt + C (Chrome)
         e.metaKey == true && e.altKey == true && e.keyCode == 67 ||
         // CMD + Shift + C (Chrome)
         e.metaKey == true && e.shiftKey == true && e.keyCode == 67 ||
         // Ctrl + Shift + I (Chrome, Firefox, Safari, Edge)
         e.ctrlKey == true && e.shiftKey == true && e.keyCode == 73 ||
         // Ctrl + Shift + J (Chrome, Edge)
         e.ctrlKey == true && e.shiftKey == true && e.keyCode == 74 ||
         // Ctrl + Shift + C (Chrome, Edge)
         e.ctrlKey == true && e.shiftKey == true && e.keyCode == 67 ||
         // F12 (Chome, Firefox, Edge)
         e.keyCode == 123 ||
         // CMD + Alt + U, Ctrl + U (View source: Chrome, Firefox, Safari, Edge)
         e.metaKey == true && e.altKey == true && e.keyCode == 85 ||
         e.ctrlKey == true && e.keyCode == 85
     ) {
			e.preventDefault();
			return false;
     }
 });

</script>

 

 

개발자 도구 감지 출처:

https://dev.to/composite/a-simple-way-to-detect-devtools-2ag0

 

A simple way to detect devtools.

After I made this implementation, I found related issue on stack overflow....

dev.to

 

###추가: 개발자도구 사용을 완벽하게 막는 방법을 찾아서 링크를 추가합니다.###

https://graykang.tistory.com/entry/Detect-browser-developer-tools-by-javascript-2chrome-firefox-Edge-javascript%EB%A1%9C-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%8F%84%EA%B5%AC-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EC%A7%80

 

크롬 개발자 도구 차단 2, Detect browser developer tools by javascript 2(chrome, firefox, Edge)

개발자 도구 사용을 막는 방법에 대해 글을 하나 남겼었다 결론은 막지 못한다로 마무리를 지었지만...ㅎㅎ 계속 파다 보니 해결 방법을 찾아냈다... 물론 내가 만든 소스 코드는 아니고 여기저

graykang.tistory.com

 

728x90
반응형
LIST
Comments