switch()ステートメントに直接スローされる場合、POSTまたはGETデータを検証する必要がありますか?例えば:
switch($_GET['input']) {
//...
}
???
switch()ステートメントに直接スローされる場合、POSTまたはGETデータを検証する必要がありますか?例えば:
switch($_GET['input']) {
//...
}
???
いいえ、case
基本的には検証です。
switchステートメントは、同じ式の一連のIFステートメントに似ています。多くの場合、同じ変数(または式)を多くの異なる値と比較し、それに等しい値に応じて異なるコードを実行することができます。これはまさにswitchステートメントの目的です。
スイッチ/ケースは大まかな比較を行うことに注意してください。
<?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;
}
?>
したがって、簡単な答えは「いいえ」です。
スイッチに実際のケースが含まれている場合はありませんが、その場合に使用するかどうか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'];
}