Security - Global Protection

Applies to Self-Extracting, HTML Viewer, IE Browser publications.

One of the main reasons to compile your websites is to protect your HTML pages from being copied, stolen or even just accessed without your authorization. To view your compiled website, end users have to launch the compiled website .exe file. It is also not possible to unpack a compiled publication or ebook using a file archiver (like 7-Zip) without running it. Finally, for non Self-Extracting publications, they cannot be decompiled. In other words, please make a backup of your source files because once a publication is compiled, you cannot extract source files from it anymore.

Publications and ebooks built with HTML Executable feature several security options that you can configure:

Global Password

If you wish to restrict the access to your publication, you can password protect it: end users will be prompted for the password before the ebook starts. If the password entered is incorrect, then an error message is displayed (given by SInvalidPassword resource string) and the ebook closes immediately.

You can also customize the behavior of the publication when the password is incorrect thanks to the HEScript UserMain.OnInvalidPasswordAtStartup Boolean event. The runtime module invokes this event if the password provided by the user is incorrect. If you set the result of this event to True, the publication does not exit.

function OnInvalidPasswordAtStartup: Boolean; 
begin
Result := True;
end;

In order to create a set of acceptable passwords that can be unique, when distributing to a set of customers, wild card characters are accepted. Thus, you can set up the following global password: 123-4**-A** (and so any character can be input for the wildcard place holder).

Allowed wild card characters:

  • # digit (1..9)

  • _ single character (a..z) and (A..Z)

  • * any character.

HTML Executable comes with a password generator that lets you create lists of random passwords based on the provided mask.

password generator

Choose the number of passwords to create and click Generate.

Ask for the password only once and store it

Once you have set up a global password, your end users will be asked for it each time they start your ebook. If you wish to avoid that, enable this option. Once the password has been validated, it will be stored and your users can access your ebook without being prompted for the password each time.

The password is either stored on the local computer OR on the storage device (USB stick for instance) if you are making a portable publication.

Set a global expiration date

If you would like your publication to expire after a specific date (it does not run anymore), then just select the expiration date you want. After that date, an error message is fired (given by SPublicationExpired resource string) and the publication closes immediately. Changing the system clock will not modify the expiration state.

This option, however, is not very safe: if you want to create Trial publications that can really expire “forever”, then make a restricted publication.

When testing your publication on your own computer, you can remove the expiration state by clicking “Clear expiration info”. This function will only work if the publication has expired. It is possible to remove the expiration state on other computers using the Cleanup utility.

By associating the expiration date to a version number, you have a way to reset the global expiration once you release a new version of your ebook. For instance, you have a global rule to expire the software on 5/1/2016, and once it’s expired, you will be releasing a new version requiring everyone to upgrade.

Finally, you can also customize the behavior of the publication when the expiration date is reached thanks to the HEScript UserMain.OnExpiredPublication Boolean event. The runtime module invokes this event and if you set its result to True, the publication does not exit.

function OnExpiredPublication: Boolean;
begin
Result := True;
end; 

Check publication size at startup

When a publication is downloaded from the Internet, if the download was not successful, this may result in a truncated file. In this case, running non-complete publications may not be safe. To prevent truncated downloads or size-modified publication files, you may enable this option. When turned on, it forces the publication to check its size. If the size is not the same as it was when the publication was built, an error message is fired.

This option is superseded by digital signatures. If you have the necessary Authenticode files (a code signing certificate), then it is even better to sign your publication.

Disable the PRINT SCREEN key

The PRINT SCREEN key allows Windows users to capture the whole screen to a bitmap, called a screenshot. This screenshot is then saved to the Clipboard and users can paste the result in any word processing tool or image editor. If you would like to disable this function, just turn on “Disable Print Screen“: pressing the key won’t take screenshots anymore when the publication is running.

This function, however, does NOT stop screen capture tools. Please take a look at Content Protection instead.

Notes:

  • Some programs (such as these capture tools) may also try to override the Print Screen hotkey. In this case, there may be conflicts.

  • Self-Extracting publications are not able to disable all Print Screen keystroke combinations contrary to other publication types.

Only one instance of the publication can be run at a time

Enable this option to make sure that only one instance of your publication executes. If the user tries to run a second instance, it immediately exits and the previous instance gets enabled and visible.

Moreover, command-line arguments are directly passed to the running instance: this feature is useful for help files as it lets you change the current topic for instance without having to close and start another instance of the publication.

Do not allow virtual printers

This is only available for PDF files displayed with the built-in PDF viewer.

This option prevents end users from printing the PDF with a virtual printer: only physical printers are allowed. Otherwise, an end user could recreate the secured PDF file with a virtual PDF printer (which saves its output to a PDF file).

If a virtual printer is detected, the following error message is shown: Printing is not allowed with the selected printer. Please choose another one and retry. which can be customized thanks to the resource string named SPrinterNotAllowed.

HTML Executable succeeds in detecting most common virtual PDF printers. If you find a virtual printer not detected, you can report it to us.


Copyright G.D.G. Software 2019. All rights reserved