【问题标题】:PHP source code encryption/Obfuscator [duplicate]PHP源代码加密/混淆器[重复]
【发布时间】:2016-11-21 03:40:21
【问题描述】:

如何对 PHP 源代码进行编码或加密?

  1. 我试过这个PHP Base64 encoder,问题是知道的人很容易解密。

  2. 为了更强大的加密,我使用AES Enryption,但如果我加密一些 PHP 代码,我的页面将无法工作。

哪种方法最好?我不想使用 Ioncube 或 Loaders。

【问题讨论】:

  • 可能XY Problem。您应该更担心有人能够获得源代码......

标签: php obfuscation


【解决方案1】:

加密 PHP 代码可能会给您一种错误的安全感。真正加密的代码将无法运行,因为 PHP 解析器无法理解它。我认为将您尝试执行的操作视为加扰混淆 代码更为准确。这使得代码更难阅读,但它始终是可逆的,这意味着如果您要保护高价值的东西免受有动机的对手的攻击,混淆只会为您争取一些时间。

可能有很多混淆代码的解决方案。比较流行的选项之一是IonCube Loader。我从未使用过它,我不熟悉它的有效性,但它是我所知道的唯一一个。欢迎其他人添加他们的反馈。

为了保护您的源文件,您只是不想将它们放在一个您不信任的人可以访问它们的环境中。例如,您可以采取的一个简单步骤是确保您的关键 PHP 文件位于您的网络服务器上可公开访问的目录之外(通常称为 public_htmlwww)。

【讨论】:

  • "真正加密的代码将无法运行,因为 PHP 解析器无法理解它。" - 这就是为什么像 ionCube 这样的解决方案有一个扩展来执行代码的原因。编码首先编译为字节码,然后为其添加保护。有些还加密,例如 V9 ionCube,您可以使用不存储在任何地方的动态密钥,解决存储密钥的固有弱点。不过,OP 不想要扩展,因此唯一的选择是保护源以通过 eval() 推送。这可能就足够了,但是可以很容易地暴露源。披露:我与 ionCube 有关。
  • @Nick 你所说的“保护源代码以通过 eval()”是什么意思?
  • 如你所说,PHP 本身只能理解源代码,因此任何不使用扩展的保护程序都必须将损坏的代码恢复为某种形式的源代码。 (啊!讨厌不小心点击返回发表评论)然后方法是在恢复的源上调用 eval() 。可以通过修补 eval() 使用的 PHP 引擎 API C 例程来公开源代码。
猜你喜欢
  • 2012-01-01
  • 2013-04-29
  • 2012-12-08
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
  • 2019-03-30
相关资源
最近更新 更多