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.
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
IP Address Restriction
MAC Address Restriction
Upgrade: ionCube Special Edition GUI
The ionCube Special Edition GUI upgrade adds the following to the standard GUI:
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.
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:
IonCube is an application that provides a security layer for PHP by encrypting the source code into bytecode.
What are the differences between versions?
The Pro version includes everything in the Basic Level ionCube, but adds a licensing feature, which allows you to create license files that expire after a specified amount of time, and IP/domain name restrictions.
What is obfuscation?
Obfuscation is the process of translating meaningful code into something that is difficult or impossible for humans to understand. This improves file security, because even if a hacker is able to decode your encryption, the resulting code will make no sense.
What advantages does the GUI environment provide for Windows and Mac OS X?
The most obvious advantage is a point-and-click interface. You can encode a program by right-clicking on it. It also includes a wizard to easily create new projects, a file manager for configuring files, a visual way to configure file access restrictions, detailed event logging, a file explorer that allows you to easily identify unencoded and encoded files, and more. Pro users also get ZIP and tar.gz archiving support, FTP support, and the ability to set user-defined parameters when it comes time to encode.
Can I still use the command line with the Windows and Mac versions?
Yes. Even though both versions come with a graphical user interface, they also continue to support the command line interface. While the graphical interface provides many conveniences, the command line interface is essential for setting up many automated encoding scripts.
Why does ionCube use 100% bytecode for encryption?
The idea is that for true security, you should never restore files to source. Instead, ionCube compiles the source to bytecode before the files are encoded. This allows ionCube to optimize the compiled binary code to deliver a higher level of protection, runtime performance, and language compatibility. It also means the source code is never recoverable, even if someone manages to hack your encryption.
How does the licensing encoding work?
All files ionCube encodes are protected by a digital signature. If any changes are made to the encoded files, including attempts to alter the copyright text, the encoded file will be rendered unusable.
What type of support does ionCube provide?
Premium support is available for all levels of ionCube products, using an online help desk. The support provided with purchase is limited, but additional features can also be purchased based on your need. Support is also available through the community forums. The forums are very active and include a section for product discussions as well as places to post questions about design, programming, hosting issues, third-party applications that integrate with ionCube, and other business needs. There is also a thread for providing feedback and suggestions to the ionCube team.
Is this just for web scripts, or does it work for mobile devices too?
At this time, ionCube is just for web scripts. While encoded files are cross-platform, they do require a loader. Currently, loaders are only available on Windows, Linux, FreeBSD, OpenBSD, OS X, and Solaris.
How do I ensure users have a loader available to unencrypt my scripts?
For most servers, you should be able to set up your encoded files to automatically install the loader when needed. This may involve updating the php.ini file, but it can also be done without updating this file, using a runtime install.
The ionCube loader package includes a script to test whether or not a server supports this option. For your own website, you should update the php.ini file to enable the ionCube loader. Specific instructions are available on their site.
What alternatives are available to ionCube?
There are a number of alternatives available, depending on your need and resources. Zend Guard is another widely used option, which functions very similarly to ionCube by encoding the source code into machine code, applying obfuscation, and using a loader to execute the encoded scripts. Another alternative, SourceGuardian, allows you to lock code to specific domains, IP addresses, MAC addresses, or even to a specific date.
What is the ionCube Package Foundry?
ionCube Encoder is fully integrated into their automated installer software, ionCube Package Foundry. Package Foundry allows developers to package their PHP and ASP based applications into a simple, GUI installer that can be run locally or via a remote server. It can generate installers for Windows or Linux, supports multiple languages, and allows developers to create custom permissions for files or folders.
Gary McGath spent years as a software developer before turning to writing. In addition to writing many articles on technology, he's the author of two crowdfunded e-books. His tech passions include data security and digital preservation.
Connect with Gary
Who's Best for ionCube Loader Hosting?
We think SiteGround is the best choice for ionCube Loader.