I've got a PHP product that clients install on their server. It's a pay-monthly product, and I need to protect it.
I did consider Ioncube (and friends), and have used several of them before. However, they're all fundamentally just deterrents because the client has all the code. There are examples (and services) of the web that crack each of them.
Of course a more secure solution would be to run it as a SaaS project, but that's not possible in this case.
So I'm considering a remote licence system...
The licence system would house a section of the PHP code, and a client requires a valid licence key to access it. This section of code would be corn-related functionality that's essential to the running of the program. So essentially an API. Clients could either be limited by IP, or by # API calls.
Clients would be emailed a licence key when they signup, then they'd enter this into the product. The product would use this API key for all future requests.
Pros:
- "Uncrackable" from the client side
- No special software required for the client (Ioncube loaders etc)
Cons:
- If the licence server goes down no clients can access the software (I'd have redundant load balanced clusters in 3 different geographic regions with 3 different providers)
- If the product/business dies, clients are left without access (I'd release the code to them in this situation, because there would be nothing to lose at that stage anyway)
Are there any significant issues I'm missing from the pros/cons list above?
So please, tear my idea to shreds :)
Note: This isn't a discussion about the merits of code protection vs plain source code. For this project, I'm required to protect it. This is in a market where anything insecure appears all over the web several days after release.