문서
/
레시피
/

모범 사례

모범 사례

난독화를 효과적으로 적용하는 방법을 안내합니다. 무엇을 보호하고, 무엇을 그대로 두어야 하며, 난독화로는 할 수 없는 일이 무엇인지 설명합니다.

권장 사항

  • 직접 작성한 코드만 난독화하세요.

    외부 스크립트나 라이브러리, 폴리필은 VM 난독화하지 마세요. 이미 축소되어 있는 데다, 난독화는 속도만 떨어뜨릴 뿐입니다.

  • 정밀한 보호에는 주석 모드를 사용하세요.

    전부 보호하는 대신, 민감한 함수에만 /* javascript-obfuscator:vm */을 표시하세요.

  • 난독화 후에는 충분히 테스트하세요.

    난독화된 코드는 항상 실제 대상 환경에서 테스트하세요. 일부 옵션은 알아채기 어려운 방식으로 코드를 망가뜨릴 수 있습니다.

  • 자주 실행되는 코드 경로는 VM 난독화에서 제외하세요.

    애니메이션 루프, 실시간 렌더링, 빈번하게 호출되는 코드에는 vmExcludeFunctions를 사용하세요.

중요한 보안 안내

난독화는 리버스 엔지니어링을 더 어렵게 만들 뿐 암호화가 아닙니다. 작정한 공격자라면 클라이언트 측 코드에서 언제든 데이터를 추출해 낼 수 있습니다.

대신 다음과 같이 하세요.

  • 시크릿은 백엔드 서버에 저장하세요
  • 서버 측에서 환경 변수를 사용하세요
  • 키를 감추기 위해 API 호출을 백엔드를 통해 프록시하세요
  • 서버가 발급하는 단기 토큰을 사용하세요

무엇을 보호해야 하나요?

VM 난독화는 다음과 같은 코드에 적합합니다.

  • 독자적인 알고리즘과 비즈니스 로직
  • 라이선스 검증 코드(클라이언트 측 검사)
  • 변조 방지 및 무결성 검사
  • 게임 로직과 치트 방지 장치
  • 프리미엄 기능 구현
  • 가격 계산 로직