我的网站文件结构目前如下所示:
在marketplace.php上我有4个类别链接到$_GET
变量(例如marketplace.php?cat = [1-4])。
在marketplace.php脚本的顶部,我有一个if
语句,用于查找cat
变量,检查它是否大于零,依此类推。
如果cat
包含大于零的数字,则它将包含cats.php,然后根据该类别编号显示数据。
如何制作以便人们无法通过在浏览器中输入cats.php来进行播放?
答案 0 :(得分:5)
将cats.php
移出文档根目录,但将其保留在包含路径中。
答案 1 :(得分:1)
如果我正确地提出了您的问题,您希望限制用户访问包含的文件(核心文件)。
您可以通过.htaccess限制它们,或者最终定义一个常量(IN_APP),它将在包含的每个文件中进行检查。如果未定义常量,则仅向用户(404)发出错误,指出该页面不存在
答案 2 :(得分:0)
有几种方法可以做到这一点。如果您的服务器上启用了.htaccess,您可以使用它来阻止对cat.php的访问,或阻止访问整个文件夹并将所有包含放在那里。
您也可以将cat.php放在网络根目录之外(public_html
以上或者您的文件夹被调用)。
答案 3 :(得分:0)
最常见也很简单的方法。在主文件中定义常量
define('MY_APP_IS_RUNNING', true);
通过添加
来保护包含if(!defined('MY_APP_IS_RUNNING') {
die('This is a include file not for public access');
}
有点旧学校,但有效。
修改强>
基本思想是,所有包含/私有文件都依赖于您在公共脚本中定义的常量。当且仅当定义了此常量时,您的包含才会执行。
在marketplace.php中你会写define('MY_APP_IS_RUNNING', true);
include_once 'cat.php';
并且你的cat.php将简单地查看是否定义了'MY_APP_IS_RUNNING'。这将为您的脚本添加基本安全性,并防止直接外部调用。