Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何保护codeigniter应用程序源文件 我在尝试什么_Php_Codeigniter - Fatal编程技术网

Php 如何保护codeigniter应用程序源文件 我在尝试什么

Php 如何保护codeigniter应用程序源文件 我在尝试什么,php,codeigniter,Php,Codeigniter,我正在为客户端构建Codeigniter应用程序。我需要在客户端服务器中上载Codeigniter应用程序。因此,我需要加密或保护我的源文件 我需要什么 我应该做些什么来保护或加密我的Codeigniter源文件或项目。好吧,现在这会剥夺开源的全部意义。 您必须使用ionCube或Zend编码器对源代码进行加密/模糊处理。 但是,我不确定应用程序在编码后是否能工作,因为您使用的是框架。 ionCube说他们与codeigniter合作,但我对此没有任何经验 我以前没用过Zend。 即使你加密了它

我正在为客户端构建Codeigniter应用程序。我需要在客户端服务器中上载Codeigniter应用程序。因此,我需要加密或保护我的源文件

我需要什么
我应该做些什么来保护或加密我的Codeigniter源文件或项目。

好吧,现在这会剥夺开源的全部意义。 您必须使用ionCube或Zend编码器对源代码进行加密/模糊处理。 但是,我不确定应用程序在编码后是否能工作,因为您使用的是框架。 ionCube说他们与codeigniter合作,但我对此没有任何经验

我以前没用过Zend。 即使你加密了它们,我也看到过一些帖子,他们声称能够得到正常的干净代码。我不知道有多少是真的

但是如果您需要保护源代码,ionCube或Zend编码器说它们可以。
或者

我也需要这种类型的功能,所有用户都会建议,但是这个软件是付费版本。因此,研究这个特性,我得到了一个如此完美的工具,它允许我使用这个工具只进行单个PHP文件编码


在我的项目中实现此编码后,对编码没有任何影响,并且工作非常完美。

ionCube中存在问题。问题是,当CodeIgniter代码混淆并加密时,该函数/类/变量的调用区域无法识别新创建的函数/类/变量名称,并生成错误

ionCube知道其中的陷阱,并提供了一种排除在该文件之外调用的此类文件的方法,但MVC就是这么做的。这不是ionCube的优雅解决方案


我没有检查ZendGuard,但我的直觉告诉我,如果我们使用任何代码加密工具,同样的问题也会出现。关键是,我们制作了一个文件、类、方法、变量加密和模糊处理(encrypt/obfuscate),处理后,它将为类、方法、变量生成新名称。现在,另一个模型、控制器和方法正在调用同一个变量/方法,然后它将无法识别,并抛出一个错误。对于ZendGuard或其他工具,我不能100%确定,但我检查了ionCube。

更好的解决方案是,imho,在销售您的产品时,应持有适当的许可证,禁止修改/更改源代码。此外,请记住CI的许可证:从那里不清楚您是否被允许,您应该向Ellis Lab和askNote发送通知,告知Zend Guard自去年以来已停产()。像Byterun这样的工具对于基本的代码隐藏来说是很好的,尽管使用诸如在运行时恢复源代码之类的工具很容易撤销。高端解决方案之所以有报酬,是因为它们是由真正的公司提供的,而这些公司的存在可能会产生巨大的成本,存在持续的开发成本,雇佣人员提供支持,等等。这是课程的马匹。披露:我与ionCube有关联。这些不是工具的问题。1) 模糊处理重命名实体,因此在不知道更改的上下文中使用它们的原始名称不应该起作用。在受保护的代码中使用原始名称,即使
$fn()
其中
$fn
是一个带有函数名的变量,也应该可以工作。请注意,启用模糊处理对于代码保护不是必需的。2) 有些系统依靠读取源代码来获取信息,因此如果文件受到保护,则无法工作。这是一个糟糕的设计,但一旦理解,就不应该成为保护文件的障碍。3) Zend Guard几年前就停产了。