Hola a todos,
Me gustaría saber qué están haciendo otros para proteger sus scripts como IP corporativa y si los grupos registran su uso. El registro de scripts es útil para ver cuáles son los más utilizados y así poder enfocar nuestros esfuerzos en consecuencia.
Nuestro método actual consiste en registrar el uso de scripts cifrados en una unidad de red, lo que requiere que el usuario ya esté autenticado en la red. Si el script JMP no puede acceder a la unidad de red, finaliza. Si puede, registra la información de uso del script, como su nombre, nombre de usuario y fecha/hora, escribiendo un archivo de texto en el directorio de red. El tiempo necesario para realizar esto es bastante largo, a veces más de 10 segundos, dependiendo de la ubicación del usuario, el servidor y las condiciones de la red. Creo que la mayor parte se debe a la operación de escritura del archivo. Desde la perspectiva del usuario, esto no es muy bueno... parece que JMP dedica una cantidad excesiva de tiempo a intentar abrir las interfaces gráficas de usuario de los scripts, pero en realidad es tiempo dedicado a conectarse al servidor y escribir el archivo. No puedo resolver nuestros problemas de red y tengo algunas ideas alternativas, pero me gustaría ver si alguno de ustedes tiene sugerencias alternativas después de leer esto.
Nota: Ciframos nuestros scripts para verlos, pero no los ciframos para ejecutarlos.
Actual:
- Ejecutar script
- Comprobar si existe una ruta de red
- Si existe, registre la información de uso (toma mucho tiempo) y continúe con el script. Use el comando "guardar archivo de texto()" con el texto en un archivo CSV.
- Esto permite verificar la autenticación y registrar el uso. Si solo necesitáramos verificar la autenticación, bastaría con comprobar la existencia del directorio, y parece ser bastante rápido.
- De lo contrario, terminar el script
Propuesta 1:
- Ejecutar script
- Si authentication_namespace no existe (primera vez que se verifica la autenticación dentro de una sesión JMP)
- Nota: "authentication_namespace" se refiere a un espacio de nombres que se puede crear y a variables que se pueden crear dentro de él. Cualquier script en una sesión JMP puede comprobar si se ha creado o si aún no existe. Podemos usar esto para crear este espacio de nombres después de la autenticación.
- Si existe un directorio de red, (verifique que el usuario esté en la red de la empresa)
- Crea el authentication_namespace. Podríamos crear una variable dentro, pero no creo que sea necesario. Verificaremos su existencia más adelante.
- Localice el archivo de registro local y cargue todos los datos de uso de script registrados localmente previamente en el servidor.
- Hacer esto solo durante la autenticación al menos reduce el tiempo empleado en escribir a una vez por sesión JMP.
- Problemas: ¿Cuántos archivos revisar? Lo guardaría en una carpeta de registro en el directorio predeterminado para limitarlo a nuestros archivos de registro, pero ¿qué ocurre si hay un archivo dañado? ¿O si un usuario lo abre por separado? ¿O si un usuario hace doble clic en un script y se crean varios archivos con la misma marca de tiempo (la más reciente)? ¿O si hay varias sesiones de JMP abiertas? Una futura sesión de JMP no tendrá acceso a la referencia del espacio de nombres, solo al nombre que le demos, etc.
- Si el directorio de red no existe, finalizar, ya que el usuario no está en la red
- Si existe authentication_namespace (el usuario ha sido previamente verificado como autenticado dentro de esta sesión JMP), registre el uso localmente en el directorio predeterminado \ carpeta de registro.
- Si el archivo no existe, créelo y guarde la información del registro
- Si el archivo existe, agregar información de registro
- (tenga en cuenta la advertencia descrita anteriormente, archivos múltiples, etc.)
- No es necesario transferir la información al servidor ahora, hazlo solo cuando verifiques la autenticación la primera vez dentro de la sesión JMP
Lo anterior es posible, pero se vuelve complejo y creo que causará problemas. Con cientos de usuarios, depurarlo sería una pesadilla si algo sale mal.
Propuesta 2:
Similar a nuestro método actual, pero la verificación de red se realiza comprobando si el directorio de red existe (rápido) y el registro se realiza iniciando una tarea de registro que JMP no necesita esperar. No estoy seguro de si esto es posible. ¿Puede JMP iniciar una tarea para escribir en un archivo remotamente sin esperar a que se complete? Esto simplificaría bastante el problema.
Por favor, déjame saber si tienes alguna idea alternativa sobre este tema.
Gracias
Micro
Creo que puedes iniciar una tarea y no esperar a que se complete utilizando Ejecutar programa() .
En general, no realizaría este tipo de registro, ya que se complica rápidamente. Y si realmente tuviera que hacerlo, crearía un sistema adecuado que lo soportara (servidor HTTP con API y base de datos para el almacenamiento de registros) y usaría la nueva solicitud HTTP de JMP para enviar los datos.
"Se complica rápidamente" - eso cubre MUCHO terreno no técnico.