Documentation
/
Recettes
/

Bonnes pratiques

Bonnes pratiques

Comment appliquer l'obfuscation efficacement : ce qu'il faut protéger, ce qu'il vaut mieux laisser tel quel, et ce que l'obfuscation ne peut pas faire pour vous.

Recommandations

  • N'obfusquez que votre propre code.

    N'appliquez pas l'obfuscation VM aux scripts tiers, bibliothèques ou polyfills. Ils sont déjà minifiés, et l'obfuscation ne ferait que les ralentir.

  • Utilisez le mode comment pour une protection ciblée.

    Définissez vmTargetFunctionsMode sur 'comment', puis marquez uniquement les fonctions sensibles avec /* javascript-obfuscator:vm */ au lieu de tout protéger. Voir Cibler des fonctions spécifiques.

  • Testez minutieusement après l'obfuscation.

    Testez toujours le code obfusqué dans votre environnement cible. Certaines options peuvent casser le code de manière subtile. Les défenses à l'exécution réagissent aussi aux outils d'automatisation des tests et aux débogueurs ; voir Tests et CI.

  • Excluez les chemins critiques de l'obfuscation VM.

    Utilisez vmExcludeFunctions pour les boucles d'animation, le rendu en temps réel ou le code appelé fréquemment. Elle ne reconnaît que les noms de fonctions de niveau racine (avec Async Executor, les fonctions async les plus externes) ; pour garder du code critique imbriqué hors de la VM, utilisez le mode comment et marquez uniquement les fonctions qui ont besoin de protection.

Avertissement de sécurité important

Ne stockez jamais de clés API, de secrets ou d'identifiants dans le code JavaScript du frontend, même obfusqué.

L'obfuscation augmente l'effort nécessaire pour comprendre et modifier le code, mais ce n'est pas du chiffrement et elle ne peut pas garantir que la rétro-ingénierie soit impossible. L'exécution reste observable dans un environnement que l'attaquant contrôle : un attaquant déterminé peut donc toujours extraire des données du code côté client. Gardez les secrets et les décisions de sécurité qui font autorité sur le serveur.

En pratique :

  • Stocker les secrets sur votre serveur backend
  • Utiliser des variables d'environnement côté serveur
  • Faire transiter les appels API par votre backend pour masquer les clés
  • Utiliser des jetons à courte durée de vie émis par votre serveur

Que faut-il protéger ?

L'obfuscation VM est idéale pour :

  • Les algorithmes propriétaires et la logique métier
  • Le code de validation de licence (vérifications côté client)
  • Les contrôles anti-altération et d'intégrité
  • La logique de jeu et les mécanismes anti-triche
  • L'implémentation des fonctionnalités premium
  • La logique de calcul des prix

Build et publication

Obfusquez votre sortie compilée et regroupée en bundle comme dernière étape du build ; consultez Compatibilité d'exécution pour la chaîne de build. Mesurez le coût du préréglage choisi sur votre propre code, comme décrit dans Choisir un préréglage. Exécutez les tests fonctionnels sur un build de test, puis validez l'artefact de publication distinct que vous livrez réellement, comme décrit dans Tests et CI.