PHP防止浏览器直接访问文件

很多时候,出于安全等因素考虑,我们的程序中某些文件不想被用户在浏览器中直接访问,可以用以下方法处理一下,以 config.php 为例。

方法一:定义变量判断

在调用 config.php 的外部代码中,定义一个标识变量,如下:

define('IS_INC', TRUE);

然后在 config.php 中进行判断:

if(!defined('IS_INC')) {
	exit('Please do not load this page directly. Thanks!');
}

方法二:URL判断

在 file.php 的头部添加如下代码:

if (isset($_SERVER['SCRIPT_FILENAME']) && 'config.php' == basename($_SERVER['SCRIPT_FILENAME']))   
	die ('Please do not load this page directly. Thanks!');

注释:

$_SERVER["SCRIPT_FILENAME"] 获取浏览器请求URL中文件的完整路径;

basename($_SERVER["SCRIPT_FILENAME"]) 获取页面文件名 config.php ,与 $_SERVER["SCRIPT_NAME"] 相同。

在上述 if 判断语句中,如果浏览器URL中执行的文件名与 config.php 一致,也就是说浏览器直接访问了该文件,执行 die……

参与评论

  • daniel

    更新哪!好久没更新喽

    nuodou 于 2010-4-2 13:06:58 回复

    10年前 (2010-04-02)
    回复
    回复daniel
  • 90后的贼

    俺还是继续世界之窗

    10年前 (2010-04-01)
    回复
    回复90后的贼
  • 淘宝网首页

    晕死,我电脑里面正好装了这个版本

    10年前 (2010-03-30)
    回复
  • ifu25

    太猛了,一会功夫PR到4,排行20万了。唉。

    nuodou 于 2010-3-30 10:21:58 回复

    你很怪,每次来都说PR哈哈

    10年前 (2010-03-30)
    回复
    回复ifu25
  • 北街

    我还蛮喜欢FF的

    10年前 (2010-03-29)
    回复
    回复北街
  • daniel

    一直不太喜欢用这个浏览器,启动的贼慢。

    nuodou 于 2010-3-30 10:22:24 回复

    这点我也深有体会!

    10年前 (2010-03-27)
    回复
    回复daniel