gpt4 book ai didi

php - Laravel 与 ioncube 和编码

转载 作者:可可西里 更新时间:2023-11-01 00:42:59 27 4
gpt4 key购买 nike

我在 Laravel 框架上工作了很短的时间,完成网站后,我愿意使用 Ioncube 对其进行编码 - 但我面临 Ioncube 无法在编码和输出之前将 Blade 模板引擎代码转换为 PHP 代码的问题编码为 HTML 普通文本。

最佳答案

Laravel 的 Blade 模板文件不是真正的 PHP 代码,因此 ionCube 编码器无法正确编码它们;但是,编码器还提供文件加密,这可能对您的情况有所帮助,但它确实需要一些设置:

  1. 在 Laravel 中,修改读取 Blade 模板文件的模块,替换 file_get_contents(<blade template files>)ioncube_read_file(<blade template_files>) .

    在我的 Laravel 4 安装中,似乎可以在 vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php 中找到负责加载和编译 Blade 模板的文件。 ,第 62 行:$contents = $this->compileString($this->files->get($path)); .

    在这里,$this->files->get($path) “只是”一个 file_get_contents($path)通过一些错误处理 - 您可以在 bootstrap/compiled.php 中找到此函数.但是,您应该能够替换 BladeCompiler.php 中的行与:

    $contents = $this->compileString(ioncube_read_file($path));

    或(如果您使用密码):

    $passphrase = "<my passphrase>";
    $contents = $this->compileString(ioncube_read_file($path, $is_encrypted, $passphrase));

    请注意,您可能希望确保文件中的密码是安全的。您可以在 User Guide 中找到有关这些功能的更多信息第 54 页。

  2. 获取ioncube_read_file工作,您将需要对修改后的模块进行编码。此外,对应用程序的其余部分进行编码,Blade 模板文件除外。

  3. 加密(不是编码!)您的 Blade 模板文件,通常以 .blade.php 结尾, 和 - 如果您使用密码 - 确保它与用于 ioncube_read_file 的密码相匹配.

还请记住,这将从您的加密文件生成标准 PHP 文件,因为该文件已编译并以纯文本形式写回缓存。如果你想改变它可能值得研究 User Guide ,页。 54 并覆盖/扩展适当的方法 bootstrap/compiled.php例如 getput检测文件是否加密,并在需要时写入加密文件。

我还应该提一下,因为在 ionCube HelpDesk 上经常有人问这个问题:尽管进行了所有编码和加密,HTML 和 JavaScript 代码以原始方式显示给所有客户查看。我只提到这一点,因为保护您的模板文件需要付出很多努力,这些文件在大多数情况下确实主要由 HTML 代码组成。它确实使任何修改变得非常困难(例如 Logo 删除),但这些事情可能也可以通过一些自定义 CSS 来实现。

关于php - Laravel 与 ioncube 和编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29070592/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com