본문 바로가기

프로그래밍/개발

자바스크립트 난독화 보안

어노테이션 툴 개발중에 들었던 생각이었는데, 디버깅하기위해서 console.log(변수) 로 찍어보면서 크롬 개발자 도구(F12) 콘솔에서 변수를 찍어볼 수 있다는것이 개발자 뿐만 아니라 사용자도 해볼 수있다는 것이 데이터 변조나 보안에 위험이 될 수 도 있다는 생각이 들어서 찾아봤던 개념이다. 자바스크립트 특성상 브라우저에 실행되는 js파일들을 사용자가 그대로 볼 수 있다고 생각했기 때문이다.

 

그래서 검색해보니 나왔던 결과는 과거에 웹해킹 문제들에 나올것만 같았던 방식들이었다. 내가 생각한 것들이 역시 과거에도 다뤄졌던 것 같다.

 

다양한 방법의 난독화가 존재하는데

1. split 사용

문자열들을 나눠서 흩뿌려놓고 읽기 어렵게 한다.

2. 문자열 인코딩

문자열을 인코딩해서 사람이 알아먹을 수 없는 문자로 바꿔 번거롭게한다.

3. eval()

자바스크립트의 코드를 계산한다.

ex) eval(1+2) = 3

 

그 외에 XOR, 문자열 치환 등을 이용한 창의적인 여러방법들이 존재했다. 다른 방법들은 검색을 통해 알아보자.

 

이 때는 아직 module화 리팩토링을 하기 직전이었는데 이러한 문제점들을 생각해봤고 다 모듈화를 통해 밖에서 접근하지 못하게 하였다. 리팩토링을 하는 계기가 되었던 것이다.

 

 

'프로그래밍 > 개발' 카테고리의 다른 글

WAS란 무엇인가?  (0) 2024.01.21
Java 문법 Integer, int 그리고 final  (0) 2023.10.23
AJAX란? Async? Await? Axios?  (0) 2023.10.10
onclick vs addEventListner , id vs class  (0) 2023.10.10
버블링과 캡처링  (0) 2023.10.10