【发布时间】:2014-09-04 16:26:26
【问题描述】:
如果 PHP 文件包含在另一个 PHP 文件中,则只允许执行该文件的正确做法是什么?
例如,假设我有我的主应用程序文件“main.php”。该文件包括“settings.php”:
// www.mydomain.com/MAIN.PHP
<?php
require 'settings.php';
?>
// www.mydomain.com/SETTINGS.PHP
<?php
// DO SOMETHING
?>
如果用户从他们的浏览器运行“www.mydomain.com/SETTINGS.PHP”,我如何才能使“settings.php”不被执行?
我正在寻找仅 PHP 的解决方案。
【问题讨论】:
-
简单:不要将其放入您网站的文档根目录中。如果您不希望它可用,请不要将它放在可用的地方。
-
如果脚本只包含变量赋值,但不打印任何内容或修改服务器上的任何内容,如果有人执行它会有什么问题?他们看不到变量。
-
@Barmar - 这是一个很好的观点,但我想知道我的核心类和设置是隐藏的或无法访问的,除非我明确包含......
-
然后就像@MarcB 说的,把它们放在他们无法访问的地方。
-
public_html 下您应该拥有的唯一文件是索引文件和资产,例如 Javascript、图像和 css。如果您的主目录中有 PHP 文件,您可能需要重新考虑您的应用程序及其工作方式。
标签: php