免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2249 | 回复: 10
打印 上一主题 下一主题

当读目录l列表时存在奇怪的问题!你们碰到过吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-28 08:48 |只看该作者 |倒序浏览
$mydir=opendir(".";读取当前文件所在的目录文件和子目录。
$mydir=opendir("..";读取当前文件所在的上一目录的文件和子目录。
在url地址中 用 斜杠“/”
本目录:("./" )或("")或(".")
上一目录: ("../")或("..")
c:根目录:("/")
------------------------
在打开当前文件所在的目录文件和子目录$mydir=opendir(".";。
while ($file = readdir($handle)) {
echo "$file\n";
}
读文件列表是是不会出错的。

但是在打开其他相对目录如$mydir=opendir("./second_folder";。读出的文件列表会不知什么原因读出的文件和目录不全,或目录和文件分不清,大小出错。!
大家不妨试一试![/b]所以我在有关文件操作的编程时,把操作文件php文件放在与要操作的文件同一目录下!避免不必要的麻烦!

论坛徽章:
0
2 [报告]
发表于 2003-05-28 21:08 |只看该作者

当读目录l列表时存在奇怪的问题!你们碰到过吗?

难道这里那么多的php编程爱好者,没有碰到过这个问题!
还是根本不存在这个问题!那也不可能!我可是确确实实运行出现这个问题。
是php函数存在问题吗!

大家答一声啊!

论坛徽章:
0
3 [报告]
发表于 2003-05-28 22:04 |只看该作者

当读目录l列表时存在奇怪的问题!你们碰到过吗?

[quote]原帖由 "baorongabc"][/quote 发表:
     
我是向来用绝对路径的,假如用相对路径可能会有安全性问题,所以相对路径没用过

论坛徽章:
0
4 [报告]
发表于 2003-05-29 06:00 |只看该作者

当读目录l列表时存在奇怪的问题!你们碰到过吗?

judite :
请问你绝对路径是如何使用的?
  举个例子!

论坛徽章:
0
5 [报告]
发表于 2003-05-29 21:05 |只看该作者

当读目录l列表时存在奇怪的问题!你们碰到过吗?

原帖由 "baorongabc" 发表:
judite :
请问你绝对路径是如何使用的?
  举个例子!
   
绝对路径就是从/开始啊

论坛徽章:
0
6 [报告]
发表于 2003-05-30 02:01 |只看该作者

当读目录l列表时存在奇怪的问题!你们碰到过吗?

绝对不可能的

另外“用绝对路径比相对路径安全”这种说法只是在一些地方是正确的。比如对于那些不对路径进行过滤的代码中。我的代码通常是对包含..的路径进行了过滤,请问这样会存在多少安全问题?

baorongabc, 你能不能写一个你通常使用的遍历相对路径的代码出来看看?谢谢

论坛徽章:
0
7 [报告]
发表于 2003-05-31 09:30 |只看该作者

当读目录l列表时存在奇怪的问题!你们碰到过吗?

原帖由 "一颗小白菜" 发表:
绝对不可能的

另外“用绝对路径比相对路径安全”这种说法只是在一些地方是正确的。比如对于那些不对路径进行过滤的代码中。我的代码通常是对包含..的路径进行了过滤,请问这样会存在多少安全问题?

baorongabc..........
   
可是我明明可以简单的来实现,为什么要把代码复杂化呢?对吧

论坛徽章:
0
8 [报告]
发表于 2003-05-31 10:45 |只看该作者

当读目录l列表时存在奇怪的问题!你们碰到过吗?

如果不作输入的目录过滤,不管是相对路径,还是绝对路径都存在问题啊,不信你试试?比如/etc/default/../passwd  这个文件实际上就是指向/etc/passwd的

论坛徽章:
0
9 [报告]
发表于 2003-05-31 19:16 |只看该作者

当读目录l列表时存在奇怪的问题!你们碰到过吗?

[quote]原帖由 "一颗小白菜"]如果不作输入的目录过滤,不管是相对路径,还是绝对路径都存在问题啊,不信你试试?比如/etc/default/../passwd  这个文件实际上就是指向/etc/passwd的[/quote 发表:
     
嗯,你对。
请问你是这么作地址过滤的?

论坛徽章:
0
10 [报告]
发表于 2003-05-31 20:58 |只看该作者

当读目录l列表时存在奇怪的问题!你们碰到过吗?

最简单的一种,直接检查输入的路径是否含有.,如果有的话,返回一个错误

  1. if (strrchr($_POST["path"], ".") !== FALSE) {
  2.     echo "你输入的路径存在非法字符!";
  3.     exit();
  4. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP