hehe,我想对所有传过来了变量进行检查!有什么办法吗? 用echo $传过来的变量; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 假如你传过来的变量为$A你可以这样if ($A==""){print"A为空";} while(list($key, $val)=each($HTTP_POST_VARS)){if(empty($val))die("$key is empty");} while(list($key, $val)=each($HTTP_POST_VARS)){if(empty($val))die("$key is empty");} hehe ,我没有说清楚啊!比如说啊,有又一个查询页面,我要控制它,没有合适的变量就不进行查询,避免出错啊! 就是参数检查,防止出错和非法攻击呗不仅要检查是否“空”,还要检查具体内容是否合法,例如,需要整型数值的,进来一个"xyz"肯定不行,此外还有字符串的长度是否超过(这是溢出攻击的最简单手法)等没什么捷径,在每个接收参数的PHP文件的开始处,挨个判断每个变量我的PHP页面都是以一堆if(!( check1($var1) && check2($var2) && ... ))die('哈哈,想搞破坏,没门!');之类代码开头的 同意楼上的看法。最好再结合qiushuiwuhen的思路,即使用$HTTP_*_VARS[]数组来保证变量的来源。 if(empty($var))等效与if(!$var),所以不保险因为$var为0,也会返回真,所以要注意这种情况楼主的意思是对查询变量进行校验,符合条件就查询。比如校验变量必须为a-z,1-9等if(preg_match("/^[a-z\d]$/i",$var)) echo "可以用来查询";else echo "非法字符,不能查询"; 楼上的没错,具体检查某个变量时可以用正则表达式不过最好还是先检查所有变量的长度(所有参数其实都是字符串),才能有效杜绝溢出攻击,因为一个超长的字符串传给eregi之类的函数,可能还没发现问题就崩溃了,至少也影响速度 希望大陸的程式員不全是垃圾 关于php做游戏索引问题 thinkphp 关联模型定义遇到问题,求解答 现在给大家介绍一个mm学习php经历~~想给她指点的加她~~~~~~ phpmyadmin中文数据出现乱码 数据库问题!请教各位高手了!在线等! 在同一页面显示多种语言的问题! 求救:请大家帮我看看这段代码那里错了。谢谢! PHP的SESSION问题 echo "<meta http-equiv=\"refresh\" content=\"0;url=manager.php\" />" 奇怪,一模一样的程序,在测试网上出错,在正式网上又没问题,会是什么原因呢? 请大家帮忙参考参考:)
你可以这样
if ($A=="")
{print"A为空";}
if(empty($val))die("$key is empty");
}
if(empty($val))die("$key is empty");
}
比如说啊,有又一个查询页面,我要控制它,没有合适的变量就不进行
查询,避免出错啊!
我的PHP页面都是以一堆if(!( check1($var1) && check2($var2) && ... ))
die('哈哈,想搞破坏,没门!');之类代码开头的
因为$var为0,也会返回真,所以要注意这种情况楼主的意思是对查询变量进行校验,符合条件就查询。比如校验变量必须为a-z,1-9等
if(preg_match("/^[a-z\d]$/i",$var))
echo "可以用来查询";
else
echo "非法字符,不能查询";
不过最好还是先检查所有变量的长度(所有参数其实都是字符串),才能有效杜绝溢出攻击,因为一个超长的字符串传给eregi之类的函数,可能还没发现问题就崩溃了,至少也影响速度