【发布时间】:2012-03-18 14:38:03
【问题描述】:
我有这样的代码:
$myvar=$_GET['var'];
// a bunch of code without any connection to DB where $myvar is used like this:
$local_directory=dirname(__FILE__).'/images/'.$myvar;
if ($myvar && $handle = opendir($local_directory)) {
$i=0;
while (false !== ($entry = readdir($handle))) {
if(strstr($entry, 'sample_'.$language.'-'.$type)) {
$result[$i]=$entry;
$i++;
}
}
closedir($handle);
} else {
echo 'error';
}
我对一些剥离和转义函数有点困惑,所以问题是,我需要对$myvar 做什么才能确保这段代码安全?就我而言,我没有建立任何数据库连接。
【问题讨论】:
-
.$myvar目录是否已经存在,还是您即时创建的? -
@Pekka:该代码不会即时创建任何内容。
-
是否使用 php 过滤器清理所有输入,对于您的代码来说应该绰绰有余。 br.php.net/manual/en/filter.filters.sanitize.php
-
@Niklas 根据 OP,上面的代码只是摘录。
-
Smartass 回答:没有,因为您使用的是single quoted string,所以您尝试访问的目录实际上是
images/.$myvar,美元符号等等。