使用在线脚本混淆是否安全?

时间:2011-07-20 15:27:05

标签: php security obfuscation software-distribution

我正在考虑保护我的脚本给大多数用户(非web开发者精明),我遇到了一个编码php脚本的在线服务。我不确定。

加密php脚本是否安全?如果编码的代码中有一些可疑的东西怎么办?

6 个答案:

答案 0 :(得分:3)

如果您打算分发PHP文件,那么我建议您不要这样做。它只会激怒那些想要修补它的人。

如果由于某种原因你不希望他们修补它,那么不要分发PHP文件。

如果您需要分发文件并且您不希望他们修改它,那么我强烈建议您不要在PHP中执行此操作,而是使用C作为PHP的扩展来编写功能。

你会注意到我没有建议你真正继续“编码”php文件。那不会给你买任何东西。

答案 1 :(得分:3)

如果您希望对服务器端PHP进行模糊处理,最好的办法是使用商业产品,例如Zend Guard(http://www.zend.com/en/products/guard/)。任何家庭酿造加密都不是最安全的 - 您的代码可以通过相当轻松的工作轻松进行逆向工程。您链接到的页面没有任何可信度,它只是某人的副项目。他们对保护您的信息没有责任或利害关系。

如果有人真的想要,即使是这些商业产品(Zend Guard,ionCube,phpShield,SourceGuardian)也可以解密。没有任何语言的工具或技术可以进行绝对安全的混淆,没有“不可攻击的”#34;系统。随着时间的推移,一切都归结为努力。

如果它不够重要,无法正确地做到这一点,那么你可能会在这个问题上浪费你的时间。此外,如果某些信息或代码保密,绝对不可能,那么你就不应该把它放到公共权限范围内。

[为清晰起见而编辑]

答案 2 :(得分:1)

最终,您需要信任加密方。如果你不信任他们(显然你不相信),那么不要让他们访问你的服务器(通过执行他们的解密代码/你的混淆代码,可能与谁知道 - 其他内部)。很简单,虽然可能不方便。

答案 3 :(得分:0)

php通常在用户无法访问代码(无论是源代码还是任何其他代表)的服务器上运行。没理由在那里混淆它。

混淆php仅在极少数情况下才有用,您可以将PHP代码提供给客户端。例如,如果您希望客户端能够运行自己的服务器,但不能让他们完全访问代码。

答案 4 :(得分:0)

所以,看起来它所做的就是混淆代码,因此它不是人类可读的。这真正有用的唯一方法是防止有权访问代码的懒人阅读它。但是,它使用简单的函数进行编码/解码,因此如果有人有权访问它,那么对它进行解码将非常容易。

这让我想到了...... PHP安全工作原理是不允许任何人访问源文件。如果一个不应该访问它的人得到它,那么这个“编码”的东西对你没有任何帮助。

答案 5 :(得分:0)

OP提到了保护数据库连接细节的兴趣,应该记住,无论代码本身使用什么保护系统,开源的PHP引擎和组件库都会对可能的内容设置一些绝对限制。实现。例如,如果MySQL连接细节隐藏在脚本中,那么只需通过运行带有对MySQL库或相关PHP模块包装稍作修改的PHP构建的脚本,就可以轻松地揭示这些细节而无需靠近PHP脚本本身。 。即使像Chris L.所建议的那样将细节隐藏在C模块中,在这种情况下也不会提供额外的保护。对于使用编译代码系统(如ionCube和Zend)的源代码,当然可以提供良好的保护,但是只要数据在PHP核心中遇到例程,就可以暴露出来。

显然,对于您可能发送敏感信息的任何在线服务,您应该尽职尽责并尽最大努力确保其具有良好的血统。除了其他任何事情,OP没有为该网站提供有效的https网址,OP会立即警告它是禁止的,不仅仅是因为缺乏连接加密,而是表明他们没有提供他们认为是的服务严重。