Zum Inhalt springen

Das Laden/Speichern anderer Arbeitsmappen verbieten (kein OLE-Hack)

Eine mögliche Schwachstelle besteht darin, dass Excel-Arbeitsmappen mithilfe von VBA- oder OLE-Befehlen auf der Festplatte gespeichert werden können. Um diese Methode der Datenextraktion zu verhindern, enthält XLS Padlock eine leistungsstarke Sicherheitsoption mit dem Namen “Do not allow loading/saving other workbooks” (Das Laden/Speichern anderer Arbeitsmappen verbieten).

Wenn diese Funktion aktiviert ist, sorgt sie dafür, dass die Excel-Instanz, auf der Ihre Anwendung läuft, keine andere Arbeitsmappendatei laden oder speichern kann. Dies hindert Benutzer wirksam daran, andere Arbeitsmappen zu öffnen, und verhindert VBA-basierte Hacks, die versuchen, Daten in eine neue, ungeschützte Datei zu kopieren.

Sicherheitsoption von XLS Padlock zum Blockieren des Ladens oder Speicherns anderer Arbeitsmappen

Was, wenn meine Anwendung andere Arbeitsmappen speichern muss? Die SetHelper-VBA-Lösung

Section titled “Was, wenn meine Anwendung andere Arbeitsmappen speichern muss? Die SetHelper-VBA-Lösung”

Diese Sicherheitsfunktion blockiert auch Standard-VBA-Code zum Speichern oder Laden von Arbeitsmappen. Wenn Ihre Anwendung diese Aktionen rechtmäßig ausführen muss, steht eine Umgehungslösung zur Verfügung.

Sie können die Einschränkung in Ihrem VBA-Code vorübergehend deaktivieren. Dazu müssen Sie zunächst die erweiterte Option “Allow loading/saving other workbooks through VBA SetOption helper” (Das Laden/Speichern anderer Arbeitsmappen über den VBA-SetOption-Helper erlauben) hier aktivieren:

SetOption helper

Anschließend können Sie den folgenden VBA-Code verwenden:

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"