3

我现在正在开发一个 php 项目(Internet Shop),该项目可能会处理存储本地客户信用卡信息。因此,我正在考虑使用 IonCube 加密 php 文件,尤其是那些包含对称加密算法的设置(加密/解密密钥,IV)的文件。所以我不确定它是否会增加额外的安全层,因为它似乎可以解密 IonCube 加密的文件和类似的解决方案。谢谢!

4

3 回答 3

3

IonCube 在这里不是一个合适的解决方案。如果您对包含以下内容的文件进行编码:

<?php $SecretValue = "xyzzy"; ?>

恢复秘密值仍然很简单:

<?php require("encoded.secrets.php"); print $SecretValue; ?>

所以 IonCube 编码在这里基本上是毫无价值的。

于 2011-10-05T02:38:43.783 回答
3

ionCube 和 Zend 可以很好地保护代码,即使某些反编译服务从编码文件中生成了可用代码,这通常也不会减少编码和许可证执行带来的好处,甚至可能会在更长的时间内增加收入软件提供商的术语。

然而,数据隐藏则完全不同。请记住,PHP 和所有相关的库包装器以及库本身都是开源的,因此很容易修改。通过对 PHP 内部结构的简单更改,可以轻松地公开发送到任何 PHP 函数和从任何 PHP 函数返回的数据。想查看 MySQL 的数据库密码吗?只需修改 mysql_connect() 包装器或底层 MySQL 库并记录详细信息。一些编码系统,例如 ionCube,可以加密非 PHP 文件,然后在运行时通过其运行时组件中的闭源例程解密,在某些情况下,这可能比 mcrypt 等开源 PHP 例程提供一些好处。

黄昏在某些系统中引用的示例并非完全不正确,例如 ionCube,可以通过称为“包含攻击”的机制保护文件不被非编码文件或由 Encoder 的不同副本编码的文件包含保护”。尽管如此,将敏感数据存储在变量中,尤其是全局变量中是一种糟糕的方法,最好让这些数据由具有误导性名称的函数返回,并且除非以特定方式调用,否则该函数可能会执行不同的操作。例如,一个名为 mytime() 的函数会返回时间,除非使用“魔法”值调用。

于 2011-10-11T15:01:22.863 回答
1

如果您要对文件进行编码/加密,Zend Guard应该是最好的之一,但正如其他人所说,如果他们可以获取您的文件,那是您最不必担心的。

于 2011-10-05T02:15:41.447 回答