【问题标题】:How to Secure PHP code in htm Pages and Partials?如何保护 html 页面和部分中的 PHP 代码?
【发布时间】:2017-02-11 06:58:43
【问题描述】:

我正在使用OctoberCMS,基于LaravelTwig,以及NginxPHP7.0-FPM

我使用 CMS 后端编辑器创建页面或部分。可以编辑 HTML 标记和代码。

页面将呈现为 localhost/mypage 并隐藏 php 源代码。

但我可以在浏览器中转到 localhost/themes/mysite/pages/mypage.htm 并以纯文本形式查看 Twig 标记和 PHP cmets。

在某些页面上,我可以查看所有 PHP 和 Laravel 代码,例如与数据库名称和表的连接。

代码编辑器中 onStart() 函数中的任何内容,即使它包含在 htm 文件中的 php 标记中。

mypage.htm 输出:

但是在查看 .php 文件时,它只显示输出而不显示源。

我尝试将页面文件扩展名更改为 php 而不是 htm,但出现错误。

Invalid file extension: php. Allowed extensions are: htm.

【问题讨论】:

    标签: php html laravel octobercms


    【解决方案1】:

    您是否正确设置了 nginx 以将这些和其他未经许可的文件列入黑名单? http://octobercms.com/docs/setup/configuration#nginx-configuration

    或者,您可以采用白名单方法来确保安全并使用october:mirror 命令:http://octobercms.com/docs/setup/configuration#public-folder

    【讨论】:

    • 您为我指明了正确的方向。我的站点是 root 是 /var/www/mysite/public/。我将规则添加到 sites-available location / {} 并超出了该位置。重新加载并重新启动 Nginx。但 htm 文件仍然显示。
    • 我通过使用 rewrite ^themes/.*/(layouts|pages|partials)/.*.htm /index.php break;并在 ^ 后面加上一个斜线。所以 ^/themes/.
    猜你喜欢
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    相关资源
    最近更新 更多