在其他人打开之前保护要包含的PHP文件


Protect a PHP file to include before opening by other people

我正在做一个小型PHP项目。我想包含许多PHP文件,但我想在其他人通过directlink打开之前保护它们。

例如:

<?php include 'content/scripts/php/sample.php'; ?>

我不希望人们通过访问sample.php

http://samplepage.com/content/scripts/php/sample.php

如果您在共享主机中,不能将文件放在web服务器文件夹之外,或者不能使用.htaccess,一种常见的方法是在主php文件中定义一个常量,然后在每个包含的文件的顶部检查该常量,如果没有定义,则检查die()。通过这种方式,人们仍然可以访问带有路径的文件,但他们只能看到一个空白页面。Wordpress使用这种方法作为例子。

在您的主php文件中:

define('APP', true);

在包含的文件中:

if(!defined('APP')) die();

只需将它们放在web服务器公共文件夹之外(也许可以使用set_include_path,以便更容易地从公共php文件访问它们)。

您也可以在PHP本身中解决此问题,如下所示:

index.php

<?php
define('PARENT_AVAILABLE', true);

include.php

<?php
if (!defined('PARENT_AVAILABLE')) die('Not allowed');