f.f*_*rah -1 php security obfuscation encoding
PHP代码使用第三方编码器(IonCube,Zend Guard)编码后.使用编码器反射怎么样?这不是很多代码吗?
据我所知,这些编码器有一个到期日期.使用旧版本编码的代码必然会在某些时候被破解.
我的解决方案是对代码进行编码后对代码进行编码(自定义编写的混淆器).将所有内容缩小为单个文件并进行模糊处理.超出本机PHP函数/变量的任何东西都是乱码.
这样,如果在某些时候代码被解码,结果将是一个混乱的,令人头脑麻木的代码.
代码是分布式的,每个客户端都有一个副本,它位于自己的LAMP服务器上.
无需担心调试,每次发布新版本时都会覆盖代码.
当然,这里有很多妥协.混淆限制了编码技术/框架的使用.
那么,您如何评价代码的安全性?混淆值得吗?
如果没有,有没有其他选择?你认为什么是最佳解决方案?
谢谢你,
福阿德
PHP代码使用第三方编码器(IonCube,Zend Guard)编码后.使用编码器反射怎么样?这不是很多代码吗?
它比那更细致入微.设计用于交互的公共代码(函数名,全局变量等)都将是公共的.
就使用反射而言,禁用内部函数/类的反射并不困难(这是他们会做的).这不一定是错误,但它可能会返回垃圾.由于编码器可以访问C,因此假设它们可以执行任何他们想要的操作.
好吧,没什么.在某些时候,代码仍然需要执行.要执行,它需要有一个操作码数组.操作码数组列出了每个函数中的每个操作.
而且,由于从操作码转换为PHP代码并不困难,编码器基本上只比在有效环境中运行的混淆器更多.
编码器可以执行的增值操作是加密操作码,以便您无法在非许可服务器上运行它.但是一旦你可以运行代码,你可以用它做任何你想做的事情.
使用旧版本编码的代码必然会在某些时候被破解.
不可以.所有版本的代码都可以破解.它所需要的只是执行的能力.
我的解决方案是对代码进行编码后对代码进行编码(自定义编写的混淆器).将所有内容缩小为单个文件并进行模糊处理.超出本机PHP函数/变量的任何东西都是乱码.
无论如何,这正是编码器的作用.除了公共代码(旨在与开发人员交互或扩展),其余的只是指针.所有命名信息都将丢失.因此,没有必要对自己进行混淆.
那么,您如何评价代码的安全性?混淆值得吗?
你没有回答的问题是你试图保护代码的人.
您是否担心有人使用您的代码未经许可?如果是这样,没有编码器可以保护您.因为所有用户需要做的是转储操作码并且他们可以拥有代码(没有变量名,但是他们不需要运行它).它并不像那样微不足道,但它是100%可行的.
你是否担心有人修改你的代码?好吧,他们无论如何都可以获得代码...所以......
你是否担心有人在查看代码来查找内容?像安全漏洞一样?嗯,他们无论如何都可以这样做.试图混淆它并没有帮助.
您是否担心普通用户进行修改?然后编码将阻止这种情况.
如果没有,有没有其他选择?
替代方案是许可.您不需要隐藏代码来保护它.根据限制性商业许可证授予许可.并使用法律系统追捕窃取或破坏许可证的任何人.这是保护软件的唯一有效方法.
你认为什么是最佳解决方案?
不编码,我能告诉你的那么多:-)