ドキュメント
/
レシピ
/

ベストプラクティス

ベストプラクティス

難読化を効果的に適用する方法: 何を保護し、何をそのままにし、そして難読化があなたのためにできないことは何か。

推奨事項

  • 自分自身のコードだけを難読化する。

    ベンダースクリプト、ライブラリ、ポリフィルを VM 難読化しないでください。それらはすでに minify されており、難読化は ただ遅くするだけです。

  • 外科的な保護にはコメントモードを使う。

    すべてを保護するのではなく、機密性の高い関数だけを /* javascript-obfuscator:vm */ でマークします。

  • 難読化後は十分にテストする。

    難読化されたコードは、必ず対象環境でテストしてください。一部のオプションは、気づきにくい形でコードを壊すことがあります。

  • ホットパスを VM 難読化から除外する。

    アニメーションループ、リアルタイムレンダリング、頻繁に呼び出されるコードには vmExcludeFunctions を使用します。

重要なセキュリティに関する注意

難読化はリバースエンジニアリングをより困難にしますが、暗号化ではありません。本気の攻撃者は、クライアント側のコードから データを常に抽出できます。

代わりに、次のようにすべきです:

  • シークレットはバックエンドサーバーに保存する
  • サーバー側で環境変数を使用する
  • API 呼び出しをバックエンド経由でプロキシしてキーを隠す
  • サーバーが発行する短命のトークンを使用する

何を保護すべきか?

VM 難読化は次のものに最適です:

  • 独自アルゴリズムとビジネスロジック
  • ライセンス検証コード(クライアント側のチェック)
  • 改ざん対策と整合性チェック
  • ゲームロジックとチート対策の仕組み
  • プレミアム機能の実装
  • 価格計算のロジック