保护php页面不被访问


Secure a php page from accessing it

我有一个index.php页面,我正在使用

<?php include("default.php"); ?>

从default.php中获取内容。现在我希望如果有人直接打开default.php,它将变得不可访问或重定向回index.php页面。我该怎么做?

如果您不希望用户访问某些内容,请不要将其放在public_html中。提示在名称中,它是公共

相反,将此类文件保存在文档根目录之外。例如,您可能有:

- /public_html
|  - index.php
|
- /files
   - default.php

从这里,index.php可以调用:

include("../files/default.php");

但是没有用户能够直接访问CCD_ 3。

@NiettheDarkAbsol的答案是最好的,但有时将文件放在public_html目录之外不是一个选项。在这种情况下,您可以在每个文件的顶部添加一个检查,以确保它是由有效文件打开的,而不是直接访问的。我通过在可以使用define('IN_SITE', true, true);访问的文件顶部设置一个常量来实现这一点,然后将以下内容添加到不允许直接访问的所有页面:

if ( ! defined('IN_SITE') )
    die('No direct access allowed!');

在文件中添加上述代码,您将在其他文件中包含该文件。此代码在default.php 中

<?php
if(!defined('MyConst')) {
   die('Direct access not permitted');
}
?>

和下面的代码在文件中,在上面的文件中你包括这个代码在index.php文件

<?php
define('MyConst', TRUE);
?>

另外,你可以通过.htaccess的帮助来实现将所有文件添加到文件夹名include和.htaccess中

Deny from all

我希望这将帮助你