어노테이션 툴 개발중에 들었던 생각이었는데, 디버깅하기위해서 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 |