Some use an obfuscator, such as Zend Guard , but to be honest, I think that technical solutions for these kinds of problems are doomed to the fact that DRM is designed for audio and video content. Fundamentally, what you give them is designed to work, so it’s just a technical problem to make it work the way you don’t want it.
Your resources here (imho) are legal not technical. You have a contract with a client that determines what they can and cannot do. You have a good draft lawyer for this contract. If they do not comply with it, then to a large extent you will have to take them to court.
Do not count on any form of obfuscation or copy protection as any guarantee.
This is especially a problem for scripting languages because (despite Zend), they are the fundamental methods of distributing plaintext. Java and .Net and other compiled bytecode languages have a bit more protection, but they can also be disassembled into intermediate code (but obfuscation is more useful here). Truly compiled languages (for example, c, C ++) have the greatest protection against all, since parsing 50 megabytes into assembler code is usually not so useful.
Even then there are no guarantees. If you don’t like it, you need to carefully choose your clients, live with a potential breach of contract (and possible coercion that may cause you to pursue), or find another job.
cletus
source share