Objetivo: Conocer las generalidades del repositorio de programas y los mecanismos de seguridad implementados.
El repositorio (ubicación de sub-programas) es una carpeta desde donde todos los clientes (terminales) cargan programas, reportes y otros recursos. Tiene una estructura que es utilizada para determinar el tipo de funcionalidad que aporta cada archivo.
* Raíz (\). Contiene archivos JavaScript (extensión .js) que pueden ser cargados dentro del entorno del backoffice para extender la interfaz del usuario o realizar procesos. Aquí se encuentran también los archivos prn_*.js que se utilizan para la impresión de comprobantes en la caja (ticket, corte, vales, etc). * Formularios de datos definidos por el usuario (\XMLForms). En esta carpeta se encuentran los archivos de formularios de datos definidos por el usuario, se utilizan dos archivos con el mismo nombre y diferente extensión para cada formulario. Uno es un archivo XML que contiene la descripción de los elementos que forman el formulario (controles) y otro JavaScript que contiene la funcionalidad y el manejo e intercepción de eventos. * Accesos directos en el menú Herramientas del Back office (\Tools). Las carpetas definidas dentro de la carpeta “Tools” se despliegan como sub-menús del menú Herramientas, los archivos JavaScript (.js) son las opciones seleccionables. * Sub-programas de intercambio de datos. (\SubPrograms). Todos los programas JavaScript de esta carpeta se muestran en la lista del menú “Aplicación->Intercambiar datos” en el Backoffice. * Reportes (\Reports). Aquí se encuentran los archivos *.xpd que son definiciones de reportes de Códice. Las carpetas que se creen aquí servirán para clasificar los reportes en el diálogo de selección de reportes en el Backoffice.La interpretación de archivos Javascript se realiza a través de la Scripting Library de Microsoft®
MaxiComercio define una extensa biblioteca de objetos que puede ser manipulada por los scripts.
Debido a que los programas Javascript y los reportes tienen acceso a la conexión de la base de datos, la biblioteca de objetos de MaxiComercio y la interoperabilidad COM/.Net es posible adecuar y extender el sistema.
Sin embargo esta potencia puede resultar peligrosa si se introducen archivos javascript con secuencias de comandos malintencionadas.
El problema potencial es que un usuario con conocimientos suficientes podría por ejemplo ejecutar una instrucción de eliminación (DELETE) irreversible contra la base de datos o alterar la información.
Para evitar que cualquiera pueda modificar los programas o introducir otros, el repositorio debe ser una carpeta compartida con permisos de “solo lectura”.
Ahora bien, para asegurar que el repositorio es en efecto una carpeta compartida debe iniciar con la secuencia \\. Por ejemplo \\servidor\maxicomercio.
Además de que la ubicación del repositorio configurada en los clientes (archivo Maxicomercio.inf) debe iniciar con la secuencia de recurso de red (\\), la base de datos debe tener esa ubicación registrada para permitir que se carguen los programas que en ella se encuentran.
A la ubicación que una base de datos tiene registrada como válida para cargar y ejecutar programas se le denomina “Ubicación de confianza”.
Esta lista de ubicaciones de confianza se encuentra en la tabla sisUbicacion de la base de datos de MaxiComercio.
El acceso de escritura sobre la tabla sisUbicacion debería restringirse al usuario de la base de datos con el que se conecta MaxiComercio, reservándose solo para “root” o “SA”. Esta es una previsión de bajo nivel que debería implementarse siempre.
Ahora bien, en un despliegue “standalone” probablemente no existirá soporte de red y por tanto las rutas de red (\\) no serán válidas. Entonces resulta necesario que MaxiComercio pueda cargar programas desde una ubicación local. Por ejemplo. C:\maxicomercio.
Para permitir la definición de ubicaciones locales en el archivo Maxicomercio.inf debe estar configurado el valor de registro HKCU\Software\Execom\secstatus.
Valores posibles para SecStatus |Valor||Descripción| |1||Seguridad de ubicaciones de repositorio activada. · Permite ubicaciones de red del repositorio, esto es, que el repositorio se encuentre compartido en el servidor y esté registrado en la tabla sisUbicacion. · Permite ubicaciones locales del repositorio siempre y cuando esté registrado en la tabla sisUbicacion y cada archivo que se intente ejecutar debe tener una firma registrada en la tabla sisFirma. Esto obliga a que cada programa que se carga desde una ubicación local deba tener su firma registrada en la base de datos evitando que con solo modificarlos se pueda infringir la seguridad. Para registrar una firma de archivo utilice la Herramienta de “Seguridad de sub-programas” desde el menú de instalación de MaxiComercio en el submenú Herramientas. | |0||Seguridad de ubicaciones de repositorio desactivada. · Permite cualquier ubicación de repositorio: rutas de red o locales, siempre y cuando este registrada en la tabla sisUbicacion.|Esta herramienta permite conectarse a una base de datos de MaxiComercio e introducir ubicaciones de confianza o registrar las firmas de programas.
Con esta herramienta puede configurar las características de seguridad inherentes a la carga de programas desde el repositorio.