자바 스크립트 난독화
자바 스크립트는 클라이언트에서 실행되는 스크립트 언어이므로 소스 코드가 그대로 노출됩니다. 물론 굳이 자바 스크립트까지 난독화할 필요는 없지만 만약 중요한 기능이라면 난독화 기능을 사용하여 배포하는 게 좋습니다.
- 자바스크립트 난독화 사이트
- http://dean.edwards.name/packer/
- https://javascriptobfuscator.com/Javascript-Obfuscator.aspx
자바 코드 난독화(Java Code Obfuscation)
- 자바 프로그램은 디컴파일(decompile), 디스어셈블(disassemble)이 가능하 므로 코드난독화가 필요함
Hello.java => Hello..class
Hello.class => Hello.java 역어셈블(디스어셈블)
- 프로가드(proguard) : 대표적인 자바 난독화 라이브러리
https://sourceforge.net/projects/proguard/files/
- 변수명, method name을 읽기 어렵게 변환함
- 난독화를 해도 근본적으로 디컴파일은 막기 어려움
- spring 프로젝트보다는 자바 프로젝트에 적합(war 파일보다는 jar 파일로 export 할 경우에 적합함, 어노테이션, xml 설정 등에는 난독화 적용이 어려 움)
간단한 예제 코드를 통해서 알아봅시다.
예제 코드
예제 코드로는 자바 스크립트 코드로 진행합니다.
여기서 주의할 점은 ${path} 값을 정확한 경로 값으로 변경해서 난독화해야 합니다.
제 경로는 spring/shop/product 이므로 ${path} 값에 들어갈 경로는 spring입니다.
if(confirm("삭제하시겠습니까?")){
document.form1.action="${path}/shop/product/delete.do";
document.form1.submit();
}
위에 올려둔 난독화 사이트 한 곳에 들어가서 코드를 올려주시고 Obfuscate 버튼을 클릭하시면 Output에 난독화된 코드가 나옵니다.
난독화된 코드를 복사하셔서 사용하시면 됩니다.
마치며
오늘은 코드 난독화에 대해서 포스팅해보았습니다.
솔직히 아직까진 난독화를 꼭? 해야 할 만큼 비중 있는 작업을 해본 적이 없어서
크게 와닿지 않지만 혹시 모르니 알아두면 좋을 거 같습니다..^^
'[ JAVA ] > JAVA Spring' 카테고리의 다른 글
[ Spring ] 게시판 01 - 목록/글쓰기 구현 (0) | 2023.04.24 |
---|---|
[ Spring ] Ajax 파일업로드 (0) | 2023.04.20 |
[ Spring ] Interceptor (0) | 2023.04.17 |
[ Spring ] 상품 수정/삭제 기능 구현 (0) | 2023.04.14 |
[ Spring ] 상품 등록/목록 페이지 구현 (0) | 2023.04.13 |