我正在开发一个php项目(Internet Shop),它可能会处理存储本地客户的信用卡信息。 所以我在考虑使用IonCube加密php文件,特别是那些包含设置(加密/解密密钥,IV)的文件。 对称加密algorythm。所以我不确定它是否会增加额外的安全层,因为它似乎是IonCube加密的 文件和类似的解决方案可以解密。 谢谢!
答案 0 :(得分:3)
IonCube在这里不是一个合适的解决方案。如果您对包含以下内容的文件进行编码:
<?php $SecretValue = "xyzzy"; ?>
恢复秘密值仍然微不足道:
<?php require("encoded.secrets.php"); print $SecretValue; ?>
所以IonCube编码在这里基本上没用。
答案 1 :(得分:3)
ionCube和Zend适用于代码保护,即使某些反编译服务从编码文件中生成可用代码,这通常也会减少编码和许可证执行带来的好处,甚至可能导致收入增加从长远来看,软件提供商。
然而,数据隐藏完全不同。请记住,PHP和所有相关的库包装器以及库本身都是开源的,因此很容易修改。通过对PHP内部的简单更改,可以轻松地向任何PHP函数发送和返回的数据。想要查看MySQL的数据库密码?只需修改mysql_connect()包装器或底层MySQL库并记录详细信息。某些编码系统(例如ionCube)可以加密非PHP文件,然后在运行时通过其运行时组件中的闭源例程进行解密,这在某些情况下可能比开源PHP例程(如mcrypt)提供一些好处。
duskwuff对于某些系统中引用的示例并不完全不正确,例如ionCube,可以保护文件不被非编码文件包含,或者由编码器的不同副本通过调用的机制编码的文件“包括攻击保护”。尽管如此,将敏感数据存储在变量中,特别是全局变量是一种糟糕的方法,并且最好让具有误导性名称的函数返回此类数据,并且除非以特定方式调用,否则可能执行不同的操作。例如一个名为mytime()的函数,它确实返回时间,除非使用“magic”值调用。答案 2 :(得分:1)
如果您要对文件进行编码/加密,Zend Guard应该是最好的文件之一,但正如其他人所说,如果他们能够找到您最不担心的文件。< / p>