PHP Source Encryption - Effectiveness and Disadvantages

后端 未结 6 1409
栀梦
栀梦 2020-12-17 02:16

I have some PHP source code that I\'m hosting with hosting company XYZ. I\'m using a PHP encryption software like Zend Guard or ionCube to protect the source from being view

相关标签:
6条回答
  • 2020-12-17 02:40

    Why exactly do you need to encrypt your source code? If you are sporting this as a safe-guard against potential hackers, then please believe when I say that if they really wanted to decrypt your source code, they would do it. It is possible with ionCube, last time I checked.

    As far as performance impacts, I believe Zend is a tad bit faster than ionCube due to it not requiring any extra files. But like I said before, don't rely on encryption for anything.

    0 讨论(0)
  • 2020-12-17 02:45

    As far as I know, PHP encoders do not actually encode you PHP code. They just change variable names and add unnecessary rubbish code, so that it becames VERY hard for anyone to find out, what the code does. The problem is that they cannot hide any password (be it the hard coded admin password, or the database connection data).

    So they do not ensure that your code is safe, they just make it very hard for anyone to understand it.

    0 讨论(0)
  • 2020-12-17 02:47

    Encryption (or encoder) schemes try to hide your code as an encrypted file. Obviously, the code has to be decrypted at execution time, which adds useless overhead. Some of these also insist that the host system install special routines, which the hosters intensely dislike, because they don't want to set up special configurations just for you. But the bad part is that they contain the seeds of their own undoing: to run on the target host, they must contain the decryption software. So if you use one, you deliver the very decryptor necessary to get at your code. Its only a matter of locating it; once found, your code is completely decryptable and exposed. These simply aren't safe.

    Obfuscation schemes scramble the names of identifiers, remove comments and formatting. But the obfuscated code runs exactly like the original, with no overhead and no special runtime support needed. Obfuscators depend on the inherent difficulty in understanding programs in general. Programs are hard enough to understand when they are well designed, names are well chosen, and there are good comments in the code. We all hope our programs are well designed, but if the names are bad and the comments are gone, they're pretty hard to understand. Examine your own experience with other people's code.

    People will say, "but anybody can inspect obfuscated code and understand it". That's true if you have a tiny application. If your application has any scale (tens of pages of code) it is extremely hard to understand what it is doing when all the variable names are scrambled. The bigger your code, the better obfuscation is at protecting it.

    If you want to see examples of what one PHP obfuscator does, see our Thicket PHP Obfuscator.

    0 讨论(0)
  • 2020-12-17 02:50

    The only thing you can do against the hosting company is to have a good license and lawyer

    0 讨论(0)
  • 2020-12-17 02:51

    Neither Zend Guard nor ionCube uses encryption, in it's mathematical sense, to protect your code. What they do, except the obfuscation already described by other answers, is encoding.

    This is a process that's normally done automatically by the PHP interpreter each time your script is accessed - your PHP script is compiled into a bytecode format, that's then executed. What encoders like Zend Guard and ionCube essentially does is an equivalent process, only that it's done once, and then only the "compiled" bytecode is made available/uploaded to the server.

    This means that actually recreating the very same code that you once wrote is entirely impossible. What is not impossible, and this goes for obfuscation as well, is reverse-engineering the compiled or obfuscated code to figure out what it's doing.

    To summarize, I'd say that these products are very good at protecting your code - as opposed to protecting your logic.

    0 讨论(0)
  • 2020-12-17 02:51

    If it can be executed it can be decompiled. Stick to your legal team for rights access, not encryption :) Better yet, open source your project :P

    EDIT: 'Encryption' also adds heavily to execution times!

    0 讨论(0)
提交回复
热议问题