首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ionCube编译的代码有多安全?

ionCube编译的代码有多安全?
EN

Security用户
提问于 2013-06-25 10:43:53
回答 3查看 14.1K关注 0票数 4

我使用ionCube为我的客户隐藏我编写的代码。

如果我将密码存储在代码中,并使用ionCube编码器编译(而不是加密),那么潜在的黑客是否有可能获得该密码?

例如,是否可以对用ionCube编译的部分PHP代码进行逆向工程?

或者,如果您有完整的加密源文件,那么可以在编译后的页面中发送像get_defined_vars()这样的命令吗?

EN

回答 3

Security用户

发布于 2013-06-25 16:24:36

是的,可以对计算机中运行的任何东西进行逆向工程。在某个时候,它总是被加载到内存中,此时它将被未加密/解码/解压缩/ e.t.c.,这样处理器就可以处理这样的代码。

在您的情况下,最终将使用在变量中硬编码的密码。所以它可以被使用,首先是未加密的.

票数 7
EN

Security用户

发布于 2013-06-29 18:39:47

注意:这个答案的作者与ionCube有关联。请记住,ionCube员工提交的答复和评论,虽然有良好的意图,但可能会引起利益冲突。

这里的答案是好的,尽管“任何挑剔的客户都不会在从编译过的代码中提取加密密钥方面有太多问题”,但这样的想法有些牵强,因为最终用户,甚至大多数PHP开发人员,通常都缺乏修改PHP引擎以任何有用的方式公开运行时数据所需的知识。

字节码保护的基础是将代码编译成另一种语言,字节码,并尽最大努力使字节码和元数据难以发现,而且如果得到它,也会花费很大的代价。ionCube编译代码,使用各种技术保护字节码,并使用非标准的,以便能够使用与PHP通常生成的字节码不同的字节码。与其他解决方案相比,这是运行时Loader组件相对较大的原因。

使用您提到的get_defined_vars()之类的PHP函数可能是不可能的,因为可以对文件进行编码,以便只处理由同一份编码器生成的编码文件,如果编码文件被替换为非编码文件,则会失败。类似地,使用变量混淆可能会破坏这些函数的结果。

尽管PHP是开源的,但在平衡保护目标与运行时性能以及与标准安装(特别是与共享服务器)的兼容性方面存在局限性。例如,虽然mysqli_connect()的密码可能受到很好的保护,但黑客可以修改mysql库或PHP库包装器,并重新编译PHP以便在运行时公开密码。然而,这在实践中可能不是一个问题,如果是的话,如果不需要与默认PHP安装兼容,就可以提高安全性。建议联系ionCube寻求建议,以便深入了解最适合您的用例的策略,并且您可能会了解到一些您不会注意到的未公开的可能性。

票数 1
EN

Security用户

发布于 2013-07-01 17:02:13

不是很安全,但你可以用它来避免外界的干扰。我会说100%中不到50%是安全的。互联网上有很多工具可以部分解压缩旧版本的ionCube。

一个例子- 电离立方译码器

我建议您选择其他加密工具来保护您的代码。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/37988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档