Compare ionCube Hosting
What You’ll Learn
ionCube is a security feature included with many web hosts.
In this article, you’ll learn what ionCube is, and what it does. You’ll learn, in simple terms, how ionCube uses encryption to boost security.
We’ll also discuss how developers can use it to keep their custom PHP code from being re-used and to license code packages.
I’ll share a few of my recommendations for ionCube web hosts. And you’ll get a shortlist of helpful ionCube resources.
What is ionCube?
If you’ve purchased hosting space, or you’re shopping around for a new provider, you will probably see ionCube offered as part of many hosting packages.
The ionCube application adds a security layer to PHP, making it an essential part of some developers’ toolkits. It’s provided at every price point, so you shouldn’t have any trouble finding a host that offers it.
Granted, ionCube isn’t an application that everyone will need in the beginning, nor is it something you’ll directly use yourself unless you’re doing software development.
But some applications that you install on your web server will need it to be present and working.
For example, many payment processing plugins require ionCube for encryption, so you will need to install and configure it, or ask your host to get involved. ionCube Loader is useful even when it isn’t required since it speeds up code execution.
A Brief History of ionCube
ionCube is the property of ionCube Ltd, a software company based in the UK.
The company specializes in tools and applications for web development and programming, using PHP in particular. Originally released in 2002, ionCube was originally developed as part of a PHP Accelerator.
At first, it was an encryption service that was provided over the web; later, it was redeveloped as a PHP extension.
It’s now known formally as the ionCube PHP Encoder and ionCube Loader, although it’s often referred to (more simply) as ‘ionCube’ by most hosting providers.
ionCube OS Compatibility
The Windows graphical user interface was added to the application in 2004, and this allows users to right-click on files to carry on specific operations.
Apple’s OS X operating system did not get a user interface until 2014.
On Linux, different distributions can use the 32-bit or 64-bit version, depending on your individual set-up. (Ask your host if you’re not sure.)
How Does ionCube Work?
PHP code on the server normally can’t be seen in a browser, but a configuration error or server bug could expose it to public view.
This could result in major security issues. If the code on the server is encrypted, it’s much harder to learn anything about it.
PHP software is normally distributed as source code, which exposes it to the developer’s customers.
Encrypting the code lets developers ship code which customers can run but can’t reverse-engineer.
What Does the ionCube Encoder Do?
The ionCube Encoder can process individual files or entire directories.
Initially, the ionCube Encoder compiles the PHP script to bytecode, a format that is used for its efficiency and high performance.
Using extra techniques such as obfuscation, ionCode is able to further disguise the original source code, although the use of these extra methods is optional.
Encrypted Files Equal Better Security
The software then encrypts the resulting data and outputs it in ASCII or binary data.
The ionCube documentation recommends binary files for the most efficient decryption but warns that binary files are more susceptible to corruption while they are being uploaded.
Newer versions of ionCube will also encrypt other file types besides PHP files, such as images.
Client-Facing ionCode Presentation
On the client side, ionCube allows a licensed computer to execute protected code.
When the PHP code is executed, an extension – the ionCube Loader – decrypts the file at runtime.
The Loader is designed to be speedy and efficient so that users experience minimal delays. It’s free to download and install.
Are There Any Known Security Issues With ionCube?
Some hackers claim to be able to decrypt files that ionCube has encrypted.
However, results vary and are imperfect due to the way ionCube scrambles the code before it’s encrypted.
Don’t count on it to protect secret information. Passwords and private access keys should never be in source code.
Using Encryption to License Encoded PHP Files
The encryption technique used in ionCube can also be used to license your PHP files prior to distribution.
You can add plain text license information to let people know what the file contains and which computers it is locked to. ionCube ensures that this plain text data can’t be deleted.
Developers use this method to stop their scripts from being pirated.
Versions of ionCube
The ionCube software is available in three editions:
Each version has a different one-time license cost. The differences are mainly in the types of access restriction they allow.
The table below breaks down the most popular features and shows which versions offer each feature.
|Set Expiration Time||N||Y||Y|
|IP Address Restriction||N||Y||Y|
|MAC Address Restriction||N||N||Y|
Upgrade: ionCube Special Edition GUI
The ionCube Special Edition GUI upgrade adds the following to the standard GUI:
- Dynamic fields
- FTP client
- Automatic archiving
The Special Edition GUI upgrade for Windows and OS X is available for all three editions, at an additional cost.
What are the System Requirements for ionCube?
ionCube support is offered on most shared hosting accounts, as well as more expensive virtual private servers and dedicated server plans.
You can find out if it’s installed on your server by viewing the phpinfo file.
If the Loader is not installed, the company has provided a simple wizard which helps to get it installed fast.
You can simply run an executable file on Windows and the Loader will be installed on your server via FTP or SFTP.
Some hosts will do this for you.
What are the Hosting Requirements for ionCube?
The main prerequisite for ionCube on your web hosting account is PHP5 or higher.
You will also need to know whether your server is 32-bit or 64-bit. Using ionCube’s scripts will select the correct version for your server.
As you check the specs, don’t confuse ionCube with its sister product, ionCube PHP Accelerator (PHPA). PHPA is a separate product which is now a decade old, and it is not normally available on shared hosting accounts.
Some Pros and Cons of ionCube
Before you decide if ionCube is right for you, consider the following points.
Benefits of using ionCube
- Protects proprietary server-side PHP code from observation
- Increases runtime efficiency
- Runs on Linux, Windows, and OS X
Cautions when using ionCube
- Not industrial-strength encryption
- Requires software license
Top 3 Hosts for Using ionCube
Looking at your hosting options for using ionCube? The tool at the top of this page will allow you to sort hosts based on detailed specifications. Or, you can choose one of the three hosts below. Each of the following hosts works well with ionCube.
SiteGround installs the ionCube Loaders PHP Extension on its shared hosting servers. Cloud server customers can request it. Users who create custom php.ini files need to be careful not to override this. The servers support PHP through version 7.1.
SiteGround has an established international presence, letting customers choose from datacenters around the world. Support is strong, and uptime of 99.9% is guaranteed.
BlueHost’s servers come with ionCube installed. It’s just necessary to enable it in the PHP configuration, which account owners can do from cPanel.
BlueHost specializes exclusively in Linux hosting and supports PHP through 7.0. Verified accounts can enable SSH access. Support is available 24/7 by phone, email, and chat.
Image via BlueHost website.
Image via HostGator website.
Different versions of PHP may be available, depending on the web hosting plan. Upgrading to PHP 7.0 is possible on all servers except Windows shared hosting. Customers can use SSH on Linux servers except for Optimized WordPress. Support is provided 24/7.
Resources: ionCube Support
Developers can get information and answers about the ionCube Encoder and Loader from multiple sources: