如何避免用户直接访问php文件?

wangguan007 2005-11-15 05:59:06
比如,用户通过login.php登陆,loginCheck.php对用户的登陆信息进行检测,
如何不让用户直接访问loginCheck.php文件?最好是不让用户看见这个文件名。
请高手指教。
...全文
478 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jessefly 2005-12-08
  • 打赏
  • 举报
回复
非常建议你用apache的
mode
rewrite方法!!!!
这个方法,转换url!!强大
wangguan007 2005-12-08
  • 打赏
  • 举报
回复
谢谢各位高手,呵呵,感觉受宠若惊。

努力向各位学习啊!!

好好研究你们的回复,谢谢。
wangguan007 2005-12-07
  • 打赏
  • 举报
回复
ashchen(陈辉)的方法可行,谢谢。

patchclass(黑翼)的回复没看明白,能不能在指点一下,谢谢。

另外,楼上有朋友说放在非web目录下,恕小弟才疏学浅,能不能帮忙解释一下,谢谢。
fyxw 2005-12-07
  • 打赏
  • 举报
回复
唠叨老大好办法,学习!
ashchen 2005-12-07
  • 打赏
  • 举报
回复
贴主的书面表达和真实意图显然不符。

包含检测实际意义不大,而且包含增加了i/o等的overload
只显示该显示的html就足够安全了。

你要处理提交的表单就必须暴露你的php文件,要不然表单提交给谁?

tcp/ip,http的安全都是建立在都是好人的基础上的,无法避免贴主标题的“直接访问”
安全应该建立在“随他怎么访问”造成的损失都在可控范围之内
xuzuning 2005-12-07
  • 打赏
  • 举报
回复
ashchen(陈辉)的方法可行,但是没有解决你不能让用户直接访问的问题,其实你loginCheck.php中本也是那么写的

if(basename(__FILE__) == basename($_SERVER['PHP_SELF'])) die('无权访问');
的含义是:
当程序文件被直接访问的时候$_SERVER['PHP_SELF']中的文件名是与__FILE__中的文件名是一样的
而程序文件是被包含时$_SERVER['PHP_SELF']中的文件名是包含他的程序的文件名
于是就很容易判断程序是否被直接执行了
至于你说:“输入的用户信息是要提交给logincheck.php的,现在不能提交了”
这就不对了,提交要提交到包含logincheck.php的文件,也就是登陆程序login.php
patchclass 2005-12-06
  • 打赏
  • 举报
回复
啊,老帖子啊
用include的包含loginCheck.php,相当于把loginCheck.php中的代码放到了login.php中了,该怎么写你自己改吧:-)
ashchen 2005-12-06
  • 打赏
  • 举报
回复
你这程序放了半个月才发现无权访问?
根据你的意图应该这样写
loginCheck.php中
<?php
if(!empty($_POST))
{ 处理登录
}
?>
wangguan007 2005-12-06
  • 打赏
  • 举报
回复
回唠叨:

用你提供的方法,现在正常登陆也提示“无权访问”,输入的用户信息是要提交给

logincheck.php的,现在不能提交了,麻烦唠叨在帮忙看看,谢谢。
xuzuning 2005-11-16
  • 打赏
  • 举报
回复
除非是自己的服务器,否则你是不能“把它放在非WEB目录下”的
moodboy1982 2005-11-16
  • 打赏
  • 举报
回复
我认为最好的办法就是把它放在非WEB目录下。
zalvsa 2005-11-16
  • 打赏
  • 举报
回复
唠叨强!这个写法第一次看到。
我是用数据库的方式来判断,当然采用数据库的方式并不是只用来判断是不是直接访问,用来设置说是否有权限可以访问该页。
设置文件名,可读取的人,判断是否存在。存在的话就读取,不存在就出错。
ashchen 2005-11-16
  • 打赏
  • 举报
回复
loginCheck.php放在非web目录下即可
xuzuning 2005-11-16
  • 打赏
  • 举报
回复
login.php中
<?php
include 'loginCheck.php';
...其他代码
?>

loginCheck.php中
<?php
if(basename(__FILE__) == basename($_SERVER['PHP_SELF')) {
die('无权访问');
}
....其他代码
?>
happyeddie 2005-11-16
  • 打赏
  • 举报
回复
用include

www.zfan.cn/work/exam
看看这个
「已注销」 2005-11-15
  • 打赏
  • 举报
回复
那你就把服务器解析文件扩展改成html~~php文件也改了

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧