web-dev-qa-db-fra.com

Protection du code ElectronJS 2018

Je suis sur le point de commencer le processus de création d'une application utilitaire basée sur Windows pour gérer le serveur expressjs localisé qui utilisera une application graphique basée sur Windows pour gérer certaines des fonctionnalités de ce service

cependant, avant de commencer, je voudrais parler à la communauté pour essayer d'obtenir des conseils.Conseils sur la façon de protéger correctement le code car ce seront tous des abeilles JS de nœud dont j'ai besoin pour m'assurer qu'il est protégé et une partie de ma lecture initiale en ligne semble montrer que l'utilisation d'électrons n'est pas la plus sûre Safeway a vu cela étant dit comment allez-vous gérer cela pour garder le nœud JS ce code protégé par des électrons et dans mon cas sur l'environnement Windows

Tout conseil serait grandement apprécié, merci beaucoup

12
jremi

tl; dr Vous pouvez et cela ne vaut pas la peine. Emballez simplement votre source dans un fichier asar, cela en éloignera la plupart des gens.

Longue avertissement:

  • Utilisez l'option asar lors de la création de votre application.
  • Obscurcir le code avec un laid.
  • Utilisez WASM
  • Liaisons de langue pour récupérer vos données à partir d'un format compilé
    • neonjs pour Rust
    • Edge-js pour C #
    • N-API, NAN pour C/C++

Sinon, vos fichiers sont des scripts, toutes ces étapes ne font que ralentir un attaquant (tactique de nombreuses défenses), mais elles ne les empêcheront pas d'y accéder. Les devTools sont assez faciles à ouvrir et les gens pourront lire le code d'une manière ou d'une autre. Et si quelqu'un obtient votre code obscurci, il est simple de reconstruire ce qui se passe (voir ici pour référence: https://www.youtube.com/watch?v=y6Uzinz3DR )

Si vous souhaitez vous protéger de la manipulation de code, il existe de meilleures façons de le faire. Comme Hashing, Context Isolation etc., electron a un chapitre entier sur la question.

https://github.com/electron/electron/blob/master/docs/tutorial/security.md

16
Hans Koch