【问题标题】:secure or encrypt smarty plugins保护或加密 smarty 插件
【发布时间】:2011-05-17 21:00:07
【问题描述】:

我正在使用 smarty 开发 CMS 系统。一个 cms 系统可以支持多个网站,具有多个网站、多个模板、多个插件和组件...

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

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

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

php有什么解决办法吗,smarty?

【问题讨论】:

  • 嗯,这很难——因为 PHP 是一种解释性语言,源代码也是可执行代码。您可以使用某种特定于服务器的密钥加密插件文件并在执行时解密它们,但这会减慢程序的执行速度。我不知道有一个预先构建的解决方案可以动态地允许这样做(即对于任何文件)。您希望您的用户在技术上有多精通?您可以将组件放入服务器可以读取但 CMS 无法读取的目录中。
  • 好吧,我的客户可能不是那么技术,但是将代码从一台服务器转移到另一台服务器的 Web 开发人员可能是像我们这样的程序员 :) 有一些服务器端程序,例如 ioncube。但我不想走那条路。

标签: php smarty


【解决方案1】:

Zend Server 提供了这样的功能。

【讨论】:

    【解决方案2】:

    您可以将这些模板设为私有,而不是尝试保护文件本身:

    将你的 php 环境的 include_path 设置为一个私有文件夹,这样你的应用程序就可以使用这个文件夹中的文件,包括模板。 但是,您的用户无法轻松检索文件。

    【讨论】:

    • 要使其工作,它们仍然需要可访问,因此您的客户无论如何都可以获取内容。
    • 这确实是主观的。我的建议可以快速设置,但任何具有一定技术背景的客户都可以使用脚本检索代码...
    【解决方案3】:

    如果您不想使用能够为 Smarty 完成工作的 ionCube PHPEncoder(通过补丁),我建议您编写一个脚本,对 Smarty 文件执行代码混淆,使其成为去混淆它们的真正烦恼。 理想情况下,这也包括变量混淆,但是在将变量处理到 Smarty 时,您还需要接触您的 PHP 文件。

    这不是很好,但如前所述,当不使用真正的编码器时,您无能为力。

    【讨论】:

      【解决方案4】:

      如前所述,IONCube 做得很好,但如果您需要一些快速的解决方案,而无需加密或使用这样的工具使代码尴尬,那么您需要编写一些代码......我记得前段时间我做了一种工具,我加密数据,然后将其放入数据库中,一段时间后我检索该数据,当然检查密码密钥。就是这样,但有时它会使您的服务器变得非常慢,特别是如果您有很多用户。

      祝你好运!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-15
        • 1970-01-01
        • 2018-11-02
        • 2010-09-22
        相关资源
        最近更新 更多