网站php如何限制对文件的访问

时间:2016-03-29 20:41:11

标签: php

我已经建立了一个网站,我在我的php脚本中使用了很多include语句,以使一切变得更简单。

例如,我有一个index.php文件,如下所示:

<?php include 'script/uppage.php';?>
<div id='ContentArea' class="container">   
    <div class="row">
        <div class="col-sm-8">
            <?php
            switch($page){
                case 'register':
                    include 'pages/register.php';
                    break;
                case 'fp':
                    include 'pages/forgotpassword.php';
                    break;
                default:
                    include 'pages/main.php';
                    break;
            }?>        
        </div>
        <div class="col-sm-4">
            <?php include 'script/side_menu.php' ?>
        </div>
    </div>
</div>
<?php include 'script/downpage.php';?>

如果有人试图直接从浏览器输入例如register.php,我想拒绝访问。因此,如果他们输入www.mywebsite.com/pages/register.php,则会显示错误。

是否有任何一般指导如何为大型网站和一些基本原则。任何帮助非常感谢!

2 个答案:

答案 0 :(得分:0)

正如评论中已经提到的那样 - 您可以将此文件存储在您的网站文件夹之外,即DOCUMENT_ROOT和include'em,如:

include $_SERVER['DOCUMENT_ROOT'] . '/../pages/main.php';

另一种选择是在顶级文件中定义一些特殊常量,例如

<?php 
define('SOME_CONSTANT', true);  // here, we define a constant
include 'script/uppage.php';?>

然后,如果您所包含的文件只是检查它,例如在pages/main.php

<?php
if (!defined('SOME_CONSTANT') || SOME_CONSTANT !== true) {
    die();
}
// other code

答案 1 :(得分:-3)

所以,我使用.htaccess文件来执行此操作。

只需在.htaccess文件中添加行Options All -Indexes