We will be at OWASP APPSEC EUROPE 2017 - Belfast! Let’s talk!MORE INFO

Help Center

Get to know more about our API, Code Annotations and Code Transformations

Domain Lock

Potency
3 / 3
Resilience
3 / 5
Cost
2 / 5

Tags: domain,lock,IP,code lock

Description

Domain Lock locks code to a specific domain name or IP address. This is a good
transformation to avoid someone stealing the protected code and running it on
their own domain or locally. This is also a good transformation to enforce license
agreements. A warning function can be specified (optionally) to be executed when
the code runs in any other domain/IP. The warning function is implemented by you
and can be used, for instance, to send a report to your server or to pop up a message.

Consider combining this transformation with obfuscation transformations to harden
the resulting code making it more resilient to automated de-obfuscator tools and
harder to understand by a human. You may also find useful to combine this
transformation with other locks:

Input Examples

  • mywebsite.com - Code will break if not running inside the mywebsite.com domain
  • mywebsite.com, www.mywebsite.com - Code will break if not running inside either mywebsite.com or www.mywebsite.com
  • *.mywebsite.com - Code will break if not running inside mywebsite.com or all of its sub-domains
  • 192.168.* - Code will break if not running in an IP inside the 192.168. network
  • file://Users/you/* - Code will break if not running inside your user directory

Option Types

Name Required Default Value Description
domains Yes N/A List of domains/IPs where the code is allowed to run (Supports wildcard to match sub-domains, IP network, and IP host range).
warningFunction No N/A Name of the function that is called when the code is executed in a domain or IP that is not in the list of allowed domains or IPs.

API Parameters

Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"keys": {
"accessKey": "XXXXXX",
"secretKey": "YYYYYY"
},
"applicationId": "ZZZZZZ",
"params": [
{
"name": "domainLock",
"options": {
"domains": [
"VALUE1",
"VALUE2"
],
"warningFunction": "VALUE"
}
}
]
}