Ga naar inhoud

Het laden/opslaan van andere werkmappen verbieden (geen OLE-hack)

Een mogelijke kwetsbaarheid is dat Excel-werkmappen met behulp van VBA- of OLE-opdrachten naar schijf kunnen worden opgeslagen. Om deze methode van gegevensextractie te voorkomen, bevat XLS Padlock een krachtige beveiligingsoptie genaamd “Do not allow loading/saving other workbooks” (Het laden/opslaan van andere werkmappen verbieden).

Wanneer deze functie is ingeschakeld, zorgt ze ervoor dat de Excel-instantie waarop uw applicatie draait geen enkel ander werkmapbestand kan laden of opslaan. Dit weerhoudt gebruikers er effectief van om andere werkmappen te openen en voorkomt VBA-gebaseerde hacks die proberen gegevens naar een nieuw, onbeveiligd bestand te kopiëren.

Beveiligingsoptie van XLS Padlock om het laden of opslaan van andere werkmappen te blokkeren

Wat als mijn applicatie andere werkmappen moet opslaan? De SetHelper-VBA-oplossing

Section titled “Wat als mijn applicatie andere werkmappen moet opslaan? De SetHelper-VBA-oplossing”

Deze beveiligingsfunctie blokkeert ook standaard-VBA-code voor het opslaan of laden van werkmappen. Als uw applicatie deze handelingen legitiem moet uitvoeren, is er een tijdelijke oplossing beschikbaar.

U kunt de beperking binnen uw VBA-code tijdelijk uitschakelen. Hiervoor moet u eerst de geavanceerde optie “Allow loading/saving other workbooks through VBA SetOption helper” (Het laden/opslaan van andere werkmappen via de VBA-SetOption-helper toestaan) hier inschakelen:

SetOption helper

Vervolgens kunt u de volgende VBA-code gebruiken:

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"