如果POST或GET数据被直接抛入switch()语句中,是否需要进行验证?例如:
switch($_GET['input']) {
//...
}???
发布于 2012-10-03 16:28:48
如果您的交换机包含真实案例,则不需要,但是如果您使用default,则在这种情况下使用$_GET时需要对其进行验证。
例如:
switch ($_GET['input']) {
case 'one':
echo "input is one";
break;
case 'two':
echo "input is two";
break;
default:
// here `$_GET['input']` need to be validated, escaped, checked if you use it to avoid XSS or SQL injections
echo $_GET['input'];
}发布于 2012-10-03 16:28:20
不,你的case基本上就是验证。
发布于 2012-10-03 16:28:37
switch语句类似于同一表达式上的一系列IF语句。在许多情况下,您可能希望将相同的变量(或表达式)与许多不同的值进行比较,并根据它等于哪个值来执行不同的代码段。这正是switch语句的作用所在。
请注意,switch/case进行松散比较。
<?php
switch ($i) {
case "apple":
echo "i is apple";
break;
case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
default:
echo "";
break;
}
?>所以,简短的答案是“不”。
https://stackoverflow.com/questions/12704574
复制相似问题