php 特殊码影响函数怎么办?

Tuesday 发布于 2013/04/23 12:22
阅读 226
收藏 0
PHP
<?php 

# 模拟get.
$getvar = urldecode('%00');

$ischeck = is_file("./aaaa/demo/$getvar.inc.php");
var_dump($ischeck);
exit();

通过url上面的参数来计算引入的文件.正常情况下都没有问题, 可碰到%00这种反转后是特殊编码的就报以下错误.

Warning:  is_file() expects parameter 1 to be a valid path, string given in D:\xampp\htdocs\t.php on line 6
NULL
求理解, 这是怎么回事. 是php的 bug吗?

加载中
0
南湖船老大
小虫0302
小虫0302
回复 @Tuesday :你干脆对输入都不要过滤,多省事呀。
Tuesday
Tuesday
每次 is_file 都前面做处理? 这是不是复杂了点.?
0
帖子列表
帖子列表
这样太危险了,你用来判断$ischeck的因子是由用户决定的,通过在URL里传递字串只要存在该文件就能通过验证。
帖子列表
帖子列表
我说的意思就是阿尔法兽说的“截断漏洞”
Tuesday
Tuesday
指定了目录的, 随便一个文件名不可能存在的.
0
d
deer
怎么我本地的php5.2.8没报错的....win APACHE
0
Tuesday
Tuesday

引用来自“deer”的答案

怎么我本地的php5.2.8没报错的....win APACHE
你的错误显示没开启吧.
0
熊猫与猫无关
熊猫与猫无关
$getvar 难道不需要花括号嘛?
返回顶部
顶部