PHP Javascript Obfuscator

PHP Javascript Obfuscator

Anti-Theft Protection for JavaScript Source Code


Frequently asked questions

Q: What is the easiest way of including dynamic obfuscated code inside my HTML?

A: Your HTML code should look like:

<script type="text/javascript" src="/a/server/path/php-javascript-obfuscator/bin/jso.php?rjs=my-repository/the-script.js&cfg=my-config"></script>

Where "my-repository" represents a JavaScript code repository and "my-config" represents a configuration preset.

Q: How can I create a repository?

A: Please refer to The Code Repository section.

Q: How can I create a configuration preset?

A: Please refer to The Configuration Preset section.

Q: Why my JavaScript obfuscated code is no longer working after the obfuscation?

A1: Make sure your original code is fully ECMA compliant.
Please make sure that the JS script is fully ECMA compliant; even if it is working it is possible that it does not fully comply with ECMA specifications – web browsers are somehow more relaxed when validating JS syntax against ECMA. The obfuscator is sensitive to that and can produce invalid JS after obfuscation.
A common issue is forgetting about proper placing of semicolon ( ; ) after each statement – please check your original code if it has proper semicolons.

A2: Check for relative paths inside original JavaScript code.
If the script is using some relative paths (or urls), their relative path will become invalid as the JS script file will be served from the obfuscator path (probably /a/server/path/php-javascript-obfuscator/bin directory).
For instance if your HTML included a JS using:

<script type="text/javascript" src="/a/server/path/php-javascript-obfuscator/bin/jso.php?rjs=my-repository/the-script.js&cfg=my-config"></script>

any usage of any relative paths inside "the-script.js" will become relative to "/a/server/path/php-javascript-obfuscator/bin/", because the js file is served now from /a/server/path/php-javascript-obfuscator/bin path.
If this is the case, please change the relative paths to absolute or move the /a/server/path/php-javascript-obfuscator/bin/jso.php file inside the directory where "the-script.js" file is located.

A3: Nevertheless, it is also of course possible the obfuscator to have a bug.
In order to track it down, please turn off all the obfuscation options from your active configuration file:

$config->DO_DECOY = false;
$config->DO_MINIFY = false;
$config->DO_LOCK_DOMAIN = false;
$config->DO_SCRAMBLE_VARS = false;
$config->ENCRYPTION_LEVEL = 0;
$config->EXPIRATION_DATE = null;

If the obfuscated code is not working with all the options off (yes, it is not really obfuscated with all the options off, but it is still served through the obfuscator), it means that there is a problem similar to the one described at points A1 or A2.
After turning off all the settings, turn them back on one-by-one so that only one should be active at a time. This will test individually each protection feature to see if there is a problem with it. After each turning on please check if the obfuscated code stops working.
If this is the case, please inform us about it and we will investigate further.

Q: Why do I get "WiseLoop JavaScript Obfuscator Message" alerts after obfuscation?

It means that no obfuscation was performed.
Probably, you did not passed a valid JavaScript file, or the JavaScript file was not found in the repository or the repository directories are invalid.
Alerts are quite self-explanatory and describe the actual problem with high accuracy.

Q: Why the size of the obfuscated script is bigger even the minifying feature is on?

Because the bytecode encryption feature was also active.
Encryption enlarges payload size. The higher encryption level, the higher protection is achieved and the larger obfuscated code will result.
Using high levels of encryption can cancel the minify effect feature by enlarging the size of the resulted obfuscated JavaScript code.

Q: Why the obfuscated script runs slower?

Because the bytecode encryption feature was active.
Using encryption can bring some performance loss because the obfuscated code needs to be decrypted before run.

Q: My original unobfuscated code is working fine even it is not fully ECMA compliant or it does not have proper semicolons after each statement. Can I use the obfuscator?

Yes. Just turn of the minifying feature.

Q: Can I merge several JavaScript files?

A: Yes. Please refer to Using the JavaScript Obfuscator section, chapter "Obfuscating an entire repository to merge all JavaScript files".

Q: Can I obfuscate dynamic code generated by PHP (JavaScript code is a PHP string variable)?

A: Yes. Please refer to Using the JavaScript Obfuscator section, chapter "Inline Obfuscation".

Q: How can I obfuscate a JavaScript located on other server? Is it possible to have the obfuscator code hosted on server A while having the JavaScript on other server B?

A: Yes it is possible under certain conditions.
The obfuscator itself and the JavaScript files usually resides on the same domain – this is the most common situation.
Accessing and obfuscating JavaScript files from another domain is possible only if the host (server A, where obfuscator is installed) PHP configuration allows remote file opening.
Check official PHP documentation to see how to enable remote file opening.
HTML code should look like:

<script type="text/javascript" src="/a/server/path/php-javascript-obfuscator/bin/jso.php?js=http://server-b/some/path/the-script.js&cfg=my-config"></script>

Q: Does this also obfuscate PHP or other programming languages?

A: No. The script was designed to obfuscate just JavaScript code.

Q: Are nginx, IIS servers supported?

A: Probably yes. Although the script have not been tested on other servers, it should work fine if PHP requirements are fulfilled.

Q: Can this work with jQuery selectors?

A: Yes. It should work with any JavaScript libraries and frameworks.

Q: I have my own JavaScript application that is actually delivered to my clients based on some licensing terms. I want to deliver only the obfuscated code of my application. Is this obfuscator helpful in anyway?

A: Yes, but not so easy.
Install our obfuscator on you own PHP environment and apply obfuscation on your application JavaScript files - the bundle feature might be very helpful here.
But, it could be easier just to use some other off-line or on-line obfuscators as well. Also,

Q: The PHP code of WiseLoop PHP JavaScript Obfuscator is obfuscated or encoded in anyway?

A: No. When purchasing you will get the full code, full documentation and samples.

Q: Is there also a WordPress integration of this?

A: Not yet. We are thinking seriously to create an obfuscation engine for WordPress also.

Q: Which are the supported browsers?

A: All of them. It is a server-side solution and it is independent of the browser used.

Q: I buy an extended license, can I use it in a product that will be sold on codecanyon?

A: Licensing terms are imposed by envato.
For more information please visit: or please ask envato directly.

Q: Is there a possibility to test the obfuscator software with a demo version with limited features or time?

A: No. But, you are free to play as long as you want with the online demo and also we will more than happy to answer you to any pre-sale questions.

Regular License $20.00
Use by you or one client, in a single end product which end users are not charged for.

Extended License $100.00
Use by you or one client, in a single end product which end users can be charged for.

Short Information

Obfuscate, scramble, minimize, domain lock, set an expiration date and encrypt your JavaScript code to protect it against theft!
This safe JavaScript anti-theft protection allows you to deliver live obfuscated encrypted JavaScript code by online processing the original source code directly on the server side, so no offline processing is needed. Just copy your original JavaScript source code to the server, and deliver it to the browser through the WiseLoop PHP Javascript Obfuscator and you will be protected against theft.

Buyer rating:
500 Sales