Salta ai contenuti

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.

Opzione di sicurezza di XLS Padlock per vietare il caricamento o il salvataggio di altre cartelle di lavoro

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:

SetOption helper

Successivamente, è possibile utilizzare il seguente codice 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"