Salut tout le monde,
J'aimerais savoir ce que font les autres pour protéger leurs scripts en tant qu'IP d'entreprise, et si les groupes enregistrent l'utilisation des scripts. L'enregistrement des scripts est utile pour identifier les scripts les plus utilisés et cibler nos efforts en conséquence.
Notre méthode actuelle consiste à enregistrer l'utilisation des scripts chiffrés sur un lecteur réseau, ce qui nécessite qu'un utilisateur soit déjà authentifié sur le réseau. Si le script JMP ne peut pas accéder au lecteur réseau, il s'arrête. S'il y parvient, il enregistre les informations d'utilisation du script, telles que son nom, son nom d'utilisateur et la date/heure, en écrivant un fichier texte dans le répertoire réseau. Cette opération est assez longue, parfois plus de 10 secondes, selon la localisation de l'utilisateur par rapport au serveur et les conditions réseau. Je pense que le problème vient principalement de l'écriture du fichier. Du point de vue de l'utilisateur, ce n'est pas terrible… JMP semble perdre un temps considérable à essayer d'ouvrir les interfaces utilisateur des scripts, mais en réalité, il passe du temps à se connecter au serveur et à écrire le fichier. Je ne parviens pas à résoudre nos problèmes réseau et j'ai quelques solutions de contournement, mais j'aimerais savoir si vous avez d'autres suggestions après avoir lu ceci.
Remarque : nous cryptons nos scripts pour les afficher, mais nous ne cryptons pas nos scripts pour les exécuter.
Actuel:
- Exécuter le script
- Vérifiez si le chemin réseau existe
- S'il existe, enregistrez les informations d'utilisation (cela prend beaucoup de temps) et poursuivez le script. Utilisez la commande save text file() avec le texte au format CSV.
- Cela permet à la fois de vérifier l'authentification et de consigner l'utilisation. Si nous n'avions besoin que de vérifier l'authentification, il suffirait de vérifier l'existence du répertoire, ce qui semble assez rapide.
- Sinon, terminer le script
Proposition 1 :
- Exécuter le script
- Si authentication_namespace n'existe pas (première vérification de l'authentification dans une session JMP)
- Remarque : « espace_de_noms_d'authentification » désigne ici un espace de noms pouvant être créé et des variables y étant intégrées. Tout script d'une session JMP peut vérifier s'il a été créé ou s'il n'existe pas encore. Cela permet de créer cet espace de noms après l'authentification.
- Si le répertoire réseau existe (vérifiez que l'utilisateur est sur le réseau de l'entreprise)
- Créez l'espace de noms d'authentification. Nous pourrions y créer une variable, mais je ne pense pas que ce soit nécessaire. Nous vérifierons simplement son existence plus tard.
- Localisez le fichier de journalisation local et téléchargez toutes les données d'utilisation des scripts précédemment enregistrées localement sur le serveur.
- Faire cela uniquement pendant l'authentification réduit au moins le temps passé à écrire à une fois par session JMP
- Problèmes : Combien de fichiers faut-il analyser ? Je le conserverais dans un dossier « log » du répertoire par défaut pour le limiter à nos fichiers journaux, mais que se passe-t-il en cas de fichier corrompu ? Ou s'il est ouvert séparément par un utilisateur ? Ou si un utilisateur double-clique sur un script et que plusieurs fichiers sont créés avec le même horodatage (le plus récent) ? Ou si plusieurs sessions JMP sont ouvertes ? Une future session JMP n'aura pas accès à la référence de l'espace de noms, mais uniquement au nom que nous lui avons attribué. etc.
- Si le répertoire réseau n'existe pas, terminez, car l'utilisateur n'est pas sur le réseau
- Si authentication_namespace existe (l'utilisateur a été précédemment vérifié comme authentifié dans cette session JMP), enregistrez l'utilisation localement dans le répertoire par défaut \ dossier journal.
- si le fichier n'existe pas, créez-le et enregistrez les informations du journal
- si le fichier existe, ajouter les informations du journal
- (notez la mise en garde décrite ci-dessus, plusieurs fichiers, etc.)
- Il n'est pas nécessaire de transférer les informations vers le serveur maintenant, faites-le uniquement lors de la première vérification de l'authentification dans la session JMP
Ce qui précède est possible, mais cela devient complexe et je pense que cela entraînera des problèmes. Avec des centaines d'utilisateurs, ce sera un cauchemar de déboguer si quelque chose ne va pas.
Proposition 2 :
Similaire à notre méthode actuelle, mais la vérification du réseau s'effectue en vérifiant l'existence du répertoire réseau (rapidement), et la journalisation se fait en lançant une tâche de journalisation que JMP n'a pas besoin d'attendre. Je ne suis pas sûr que ce soit possible. JMP peut-il lancer une tâche d'écriture dans un fichier à distance sans attendre sa fin ? Cela simplifierait considérablement le problème.
S'il vous plaît laissez-moi savoir si vous avez des idées alternatives sur ce sujet.
Merci
Micro
Je pense que vous pouvez démarrer une tâche et ne pas attendre qu'elle se termine en utilisant Run Program() .
Globalement, je déconseillerais ce type de journalisation, car cela devient vite compliqué. Et si je devais vraiment le faire, je créerais un système approprié pour le prendre en charge (serveur HTTP avec API et base de données pour le stockage des journaux) et j'utiliserais la nouvelle requête HTTP de JMP pour envoyer les données.
« ça devient vite compliqué » – ça couvre BEAUCOUP de terrain non technique.