2010-11-30 70 views
2

我正在使用smarty在CMS系统上工作。一个CMS系统可以支持多个网站,多个网站,多个模板,多个插件和组件...安全或加密smarty插件

客户可以使用预先存在的模板注册并创建他的网站,并选择组件在该模板上显示它们。

我的问题是,我如何使这些组件安全或加密。所以如果客户端将他的站点从服务器移动到另一台服务器,他将无法使用这些模块,组件等,或者至少这些会在一定时间后过期。

我将使用smarty创建这些组件插件。

有什么解决方案在PHP中,聪明?

+0

嗯,这很难 - 因为PHP是一种解释型语言,源代码也是可执行代码。你*可以*用某种特定于服务器的密钥加密插件文件并在执行时解密它们,但这会减慢程序的执行速度。我不知道有一个预先构建的解决方案可以动态地实现这个功能(即任何文件)。您希望您的用户如何在技术上精通?您可以将组件放入服务器可读取的目录中,但不能通过CMS访问。 – Piskvor 2010-11-30 13:09:04

+0

以及我的客户可能不是那种技术,但将代码从一台服务器转移到另一台服务器的Web开发人员可能像我们这样的程序员:)有一些服务器端程序,如ioncube。但我不想走那条路。 – Developer 2010-11-30 13:13:40

回答

0

,而不是试图以确保文件本身,你可能只是让这些模板私人:

设置你的PHP环境的include_path私人文件夹,这样,你的应用程序可以在此文件夹中使用文件,包括模板。 但是,您的用户无法轻松检索文件。

1

Zend Server提供了这样的功能。

0

如果你不想使用类似ionCube的PHPEncoder,它可以为Smarty工作(通过补丁),我建议你编写一个脚本来执行你的Smarty文件的代码模糊处理一个真正的烦恼去消除它们。 理想情况下,也会包含变量混淆,但在处理变量到Smarty时,您还需要触摸PHP文件。

这并不是很好,但正如所说的,当不使用真正的编码器时,你可以做的事情不多。

0

正如之前提到的Ioncube公司把工作做好,但如果你需要在没有隐窝或与此类工具尴尬代码中的一些快速的解决方案,那么你就需要代码的东西......我remenber较早前我做了一个样的工具,我隐藏数据,然后把它放入数据库中,一段时间后我检索数据,当然检查密码键。这是一种方式,但有时它可能会让你的服务器非常慢,特别是如果你有很多用户。

好运男人!