모범 사례
난독화를 효과적으로 적용하는 방법을 안내합니다. 무엇을 보호하고, 무엇을 그대로 두어야 하며, 난독화로는 할 수 없는 일이 무엇인지 설명합니다.
권장 사항
직접 작성한 코드만 난독화하세요.
외부 스크립트나 라이브러리, 폴리필은 VM 난독화하지 마세요. 이미 축소되어 있는 데다, 난독화는 속도만 떨어뜨릴 뿐입니다.
정밀한 보호에는 주석 모드를 사용하세요.
전부 보호하는 대신, 민감한 함수에만
/* javascript-obfuscator:vm */을 표시하세요.난독화 후에는 충분히 테스트하세요.
난독화된 코드는 항상 실제 대상 환경에서 테스트하세요. 일부 옵션은 알아채기 어려운 방식으로 코드를 망가뜨릴 수 있습니다.
자주 실행되는 코드 경로는 VM 난독화에서 제외하세요.
애니메이션 루프, 실시간 렌더링, 빈번하게 호출되는 코드에는
vmExcludeFunctions를 사용하세요.
중요한 보안 안내
난독화는 리버스 엔지니어링을 더 어렵게 만들 뿐 암호화가 아닙니다. 작정한 공격자라면 클라이언트 측 코드에서 언제든 데이터를 추출해 낼 수 있습니다.
대신 다음과 같이 하세요.
- 시크릿은 백엔드 서버에 저장하세요
- 서버 측에서 환경 변수를 사용하세요
- 키를 감추기 위해 API 호출을 백엔드를 통해 프록시하세요
- 서버가 발급하는 단기 토큰을 사용하세요
무엇을 보호해야 하나요?
VM 난독화는 다음과 같은 코드에 적합합니다.
- 독자적인 알고리즘과 비즈니스 로직
- 라이선스 검증 코드(클라이언트 측 검사)
- 변조 방지 및 무결성 검사
- 게임 로직과 치트 방지 장치
- 프리미엄 기능 구현
- 가격 계산 로직
