Chr*_*ris 6 php security encryption obfuscation
我有一些PHP源代码,我正在托管公司XYZ托管.我正在使用像Zend Guard或ionCube这样的PHP加密软件来保护源不被任何人查看(系统管理员或破解系统管理员的黑客).
对完全访问系统的人(如系统管理员或破解系统管理员的黑客)解密源是多么容易/困难?我不知道加密软件是如何工作的,但我假设他们使用了一些密钥,这些密钥必须留在服务器上,因此系统管理员或黑客都可以访问.如果您在技术上了解操作方法,请不要犹豫,在答案中提供解释.
使用此类源加密是否会降低网站的速度?如果有人有第一手经验或知道有第一手经验的人;)
我对这方面的技术方面感兴趣,加密的有效性如何......以及使用它们或考虑使用它们的人的缺点
谢谢(所有有用的答案/评论已经投票)
编辑:迄今为止的答案似乎忽略了我想要了解的内容.我试图了解加密的有效性.我真的没有任何代码需要保护好坏人,以上只是一个例子,所以像开源或聘请律师这样的建议并没有真正解决我的技术好奇心...... A +对任何得到这一点的人来说
加密(或编码器)方案尝试将您的代码隐藏为加密文件.显然,代码必须在执行时解密,这会增加无用的开销.其中一些还坚持主机系统安装特殊程序,主机人员非常不喜欢,因为他们不想只为你设置特殊配置.但不好的是,它们包含了自己撤销的种子:要在目标主机上运行,它们必须包含解密软件.因此,如果你使用一个,你需要提供必要的解密器来获取你的代码.它只是找到它的问题; 一旦找到,您的代码就完全可以解密和暴露.这些根本不安全.
混淆方案对标识符的名称进行加密,删除注释和格式.但是混淆的代码与原始代码完全相同,没有开销,也不需要特殊的运行时支持.混淆器一般依赖于理解程序的固有困难.程序很难理解它们何时设计得很好,名称选择得当,并且代码中有很好的注释.我们都希望我们的程序设计得很好,但如果名字不好而且评论消失了,那么很难理解.用别人的代码检查你自己的经验.
人们会说,"但任何人都可以检查混淆代码并理解它".如果您的应用程序很小,那就是这样.如果你的应用程序有任何规模(数十页代码),那么当所有变量名都被扰乱时,很难理解它在做什么.代码越大,越好的混淆就是保护代码.
如果您想查看一个PHP混淆器的功能示例,请参阅我们的Thicket PHP Obfuscator.
在数学意义上,Zend Guard和ionCube都不使用加密来保护您的代码.除了已经由其他答案描述的混淆之外,他们所做的是编码.
这是一个通常由PHP解释器在每次访问脚本时自动完成的过程 - 您的PHP脚本被编译成字节码格式,然后执行.像Zend Guard和ionCube这样的编码器本质上是一个等价的过程,只做了一次,然后只有"编译"的字节码可用/上传到服务器.
这意味着实际上重新创建您曾经写过的完全相同的代码是完全不可能的.什么是不可能的,这也适用于混淆,是对编译或混淆的代码进行逆向工程,以弄清楚它在做什么.
总而言之,我会说这些产品非常擅长保护您的代码 - 而不是保护您的逻辑.
归档时间: |
|
查看次数: |
3206 次 |
最近记录: |