Protecting EFS Scripts in eSignal (Part 3)

A question we frequently get from eSignal users who are building their own EFS indicators is "How can I protect the source code?".

Note: this discussion assumes you are running eSignal 12.x or newer

There are a few options depending upon your ultimate goal:
  • Encryption only (Covered in Part 1);
  • Encryption and basic licensing control (Covered in Part 2);
  • Encryption and enhanced licensing control;

Encryption and Enhanced Licensing Control

This scenario is very similar to what we covered under Part 2 (Encryption and Basic Licensing Control), the difference being in the scope of the licensing control component. For some of you, basic licensing control might not be enough. For example, if you need one or more of the following features:


  • Subscription-based licensing;
  • Product trial support; 
  • Grace periods;
  • Redundancy (i.e., multiple user-access file locations in the event of network failure);
  • The ability to control multiple EFS products from one user-access file;
  • Hosted database (i.e., mySQL) integration for license control and back-end management;

...then you will need something more robust than what was discussed in Part 2. The good news is that if you are comfortable with javascript and are not afraid to get your hands dirty, eSignal EFS provides all of the components you will need to build a very flexible and very user-friendly license control system. The primary components you will need to build this system would be the EFS http() object and the file() object. If you already have a licensing system in place that is being used on some other platform (i.e., like Tradestation, or Ninja, etc.) that makes use of a DLL interface, then you will be glad to hear that eSignal EFS also has a DLL() object.

You would use the http() object to access data on the internet. In this case the "data" would be your actual user-access file stored in a folder on your web site (or on multiple sites for redundancy), or a CGI script hosted on one or more servers that would perform the function of generating this list.

The file() object would be used to read and write data on the user's hard drive. This is important since it allows you to set up a system where authentication is only performed once a day, or once every 3 days...rather than performing the authentication each and every time the user loads or refreshes the script, which can be very annoying for the user.

Subscriptions and product trials can be implemented simply by storing a date along with each username in your user-access file. The date can then be checked by your custom licensing function and a decision can be made as to whether or not you will allow the user to run the script.

You can get more information on all of these EFS objects (as well as information on EFS in general) by visiting the eSignal EFS Knowledgebase.

For those that are not inclined to build their own licensing control component, we have a very flexible and easy to use component that we developed originally for our own indicators. It supports all of the features discussed above and is available for a very reasonable one-time license fee. Just contact us if you would like more information.

Divergence Software, Inc.
www.sr-analyst.com
support@sr-analyst.com
Contact Us/Subscribe

No comments:

Post a Comment

Latest Post

Harmonic Pattern Collection Lifetime Package

If you are currently a Harmonic Pattern Collection monthly subscriber, consider upgrading to outright purchase of the Harmonic Pat...

Most Popular