Vietare il caricamento/salvataggio di altre cartelle di lavoro (nessun hack OLE)
Una potenziale vulnerabilità è che le cartelle di lavoro Excel possono essere salvate su disco tramite comandi VBA o OLE. Per impedire questo metodo di estrazione dei dati, XLS Padlock include una potente opzione di sicurezza denominata “Do not allow loading/saving other workbooks” (Vietare il caricamento/salvataggio di altre cartelle di lavoro).
Quando è attivata, questa funzionalità rende l’istanza di Excel che esegue l’applicazione incapace di caricare o salvare qualsiasi altro file di cartella di lavoro. Ciò impedisce efficacemente agli utenti di aprire altre cartelle di lavoro e blocca gli hack basati su VBA che tentano di copiare i dati in un nuovo file non protetto.

Cosa fare se la mia applicazione deve salvare altre cartelle di lavoro? La soluzione VBA SetHelper
Section titled “Cosa fare se la mia applicazione deve salvare altre cartelle di lavoro? La soluzione VBA SetHelper”Questa funzionalità di sicurezza blocca anche il codice VBA standard che salva o carica cartelle di lavoro. Se l’applicazione deve legittimamente eseguire queste azioni, è disponibile una soluzione alternativa.
È possibile disattivare temporaneamente la restrizione all’interno del proprio codice VBA. Per farlo, occorre innanzitutto attivare l’opzione avanzata “Allow loading/saving other workbooks through VBA SetOption helper” (Consentire il caricamento/salvataggio di altre cartelle di lavoro tramite l’helper VBA SetOption) qui:

Successivamente, è possibile utilizzare il seguente codice VBA:
Dim XLSPadlock As ObjectSet XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
' Temporarily disable the securityXLSPadlock.SetOption Option:= "2", Value:= "0"XLSPadlock.SetOption Option:= "1", Value:= "1" ' Also disable encrypted save prompt
' Your code to save a normal workbookActiveWorkbook.SaveAs "D:\My Documents\NormalWorkbook.xlsx"
' Re-enable the securityXLSPadlock.SetOption Option:= "2", Value:= "1"XLSPadlock.SetOption Option:= "1", Value:= "0"