2014-03-28 96 views
-1

由于我国的互联网带宽不佳,客户希望我在他的Windows服务器或Linux服务器上安装我的PHP/MySQL应用程序。保护PHP源代码

什么是保护源代码的最好方法?或者PHP源代码所在的文件夹。客户端应该能够自由地使用服务器的其余部分。

谢谢。 西里尔

+0

你想什么来保护它的呢?你是否说客户端不应该能够读取代码,或执行它或其他什么? – eis

+0

http://www.zend.com/en/products/guard/ ??? –

+0

防止复制,修改和阅读。客户端应该只执行php文件。 –

回答

1

,以保护你的PHP代码的最佳方式是恕我直言http://www.ioncube.com/

我不会推荐Ze nd守卫,因为有些工具可以重新编译(不完美)编译的php代码。

PHP编码也是一个坏主意,因为它比其他编码器更慢的PHP代码方式。

+0

我想过ZendGuard和其他人,但是我读过代码会有问题,或者它会放慢速度或者可以反编译。这就是为什么我在考虑NTFS磁盘上的密码保护文件夹。 –

+1

确实如此,Zend Guard可能会有问题,大部分都是基于不受支持的PHP版本。这就是为什么我们使用ionCube - 没有问题也没有性能问题。唯一可能发生的是,当您将编码文件上传为纯文本而不是二进制文件时,可能会导致问题。 – neonoxGER

+0

我可以测试ionCube吗? –

2

,你可以使用代码混淆

这是一个example

虽然(非常困难)的代码可以重新转换,但至少使代码更难以阅读

例1

<?php 
    echo phpinfo(); 
?> 

WOU LD变成像这样

<?php $XnNhAWEnhoiqwciqpoHH=file(__FILE__);eval(base64_decode("aWYoIWZ1bmN0aW9uX2V4aXN0cygiWWl1bklVWTc2YkJodWhOWUlPOCIpKXtmdW5jdGlvbiBZaXVuSVVZNzZiQmh1aE5ZSU84KCRnLCRiPTApeyRhPWltcGxvZGUoIlxuIiwkZyk7JGQ9YXJyYXkoNjU1LDIzNiw0MCk7aWYoJGI9PTApICRmPXN1YnN0cigkYSwkZFswXSwkZFsxXSk7ZWxzZWlmKCRiPT0xKSAkZj1zdWJzdHIoJGEsJGRbMF0rJGRbMV0sJGRbMl0pO2Vsc2UgJGY9dHJpbShzdWJzdHIoJGEsJGRbMF0rJGRbMV0rJGRbMl0pKTtyZXR1cm4oJGYpO319"));eval(base64_decode(YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH)));eval(ZsldkfhGYU87iyihdfsow(YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH,2),YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH,1)));__halt_compiler();aWYoIWZ1bmN0aW9uX2V4aXN0cygiWnNsZGtmaEdZVTg3aXlpaGRmc293Iikpe2Z1bmN0aW9uIFpzbGRrZmhHWVU4N2l5aWhkZnNvdygkYSwkaCl7aWYoJGg9PXNoYTEoJGEpKXtyZXR1cm4oZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJGEpKSk7fWVsc2V7ZWNobygiRXJyb3I6IEZpbGUgTW9kaWZpZWQiKTt9fX0=684ec3cc57884cf14d34c372f3ab886384a059a3S03OyFcoyCjIzEvL19C0BgA= 

例如2

<?php 
for($i = 1; $i <= 10; $i++) { 
    echo('5x'.$i.'='.(string)($i*5)."\n"); 
} 
?> 

会变成这样的事情

<?php $XnNhAWEnhoiqwciqpoHH=file(__FILE__);eval(base64_decode("aWYoIWZ1bmN0aW9uX2V4aXN0cygiWWl1bklVWTc2YkJodWhOWUlPOCIpKXtmdW5jdGlvbiBZaXVuSVVZNzZiQmh1aE5ZSU84KCRnLCRiPTApeyRhPWltcGxvZGUoIlxuIiwkZyk7JGQ9YXJyYXkoNjU1LDIzNiw0MCk7aWYoJGI9PTApICRmPXN1YnN0cigkYSwkZFswXSwkZFsxXSk7ZWxzZWlmKCRiPT0xKSAkZj1zdWJzdHIoJGEsJGRbMF0rJGRbMV0sJGRbMl0pO2Vsc2UgJGY9dHJpbShzdWJzdHIoJGEsJGRbMF0rJGRbMV0rJGRbMl0pKTtyZXR1cm4oJGYpO319"));eval(base64_decode(YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH)));eval(ZsldkfhGYU87iyihdfsow(YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH,2),YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH,1)));__halt_compiler();aWYoIWZ1bmN0aW9uX2V4aXN0cygiWnNsZGtmaEdZVTg3aXlpaGRmc293Iikpe2Z1bmN0aW9uIFpzbGRrZmhHWVU4N2l5aWhkZnNvdygkYSwkaCl7aWYoJGg9PXNoYTEoJGEpKXtyZXR1cm4oZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJGEpKSk7fWVsc2V7ZWNobygiRXJyb3I6IEZpbGUgTW9kaWZpZWQiKTt9fX0=677f209731e728fdbcbec2b1e7f962f8042b6d7aS8sv0lBQyVSwVTC0BtE2QIYBiKWtraCpUM3LlZqcka+hoGRaoaSnkqmnZKukp1FcUpSZl66poZKpZaqppxSTp6Sgac3LVQsA 
1

您可以混淆服务器上的php文件以获得额外的保护。混淆让攻击者更难理解你的代码,如果他最终进入的话。请记住保留一个未被混淆的文件备份。

离店 Zend Guard