Ir al contenido

No permitir cargar/guardar otros libros (sin hack OLE)

Una posible vulnerabilidad es que los libros de Excel se pueden guardar en disco mediante comandos VBA u OLE. Para impedir este método de extracción de datos, XLS Padlock incluye una potente opción de seguridad denominada “Do not allow loading/saving other workbooks” (No permitir cargar/guardar otros libros).

Cuando está habilitada, esta función hace que la instancia de Excel que ejecuta su aplicación sea incapaz de cargar o guardar cualquier otro archivo de libro. Esto bloquea de forma efectiva que los usuarios abran otros libros e impide los hacks basados en VBA que intentan copiar datos a un nuevo archivo sin protección.

Opción de seguridad de XLS Padlock que impide cargar o guardar otros libros

¿Qué sucede si mi aplicación necesita guardar otros libros? La solución VBA SetHelper

Section titled “¿Qué sucede si mi aplicación necesita guardar otros libros? La solución VBA SetHelper”

Esta función de seguridad también bloquea el código VBA estándar para guardar o cargar libros. Si su aplicación necesita realizar legítimamente estas acciones, existe una solución alternativa.

Puede deshabilitar temporalmente la restricción dentro de su código VBA. Para hacerlo, primero debe habilitar la opción avanzada “Allow loading/saving other workbooks through VBA SetOption helper” (Permitir cargar/guardar otros libros mediante el helper VBA SetOption) aquí:

SetOption helper

A continuación, puede usar el siguiente código VBA:

Dim XLSPadlock As Object
Set XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
' Temporarily disable the security
XLSPadlock.SetOption Option:= "2", Value:= "0"
XLSPadlock.SetOption Option:= "1", Value:= "1" ' Also disable encrypted save prompt
' Your code to save a normal workbook
ActiveWorkbook.SaveAs "D:\My Documents\NormalWorkbook.xlsx"
' Re-enable the security
XLSPadlock.SetOption Option:= "2", Value:= "1"
XLSPadlock.SetOption Option:= "1", Value:= "0"