当我想保护$ _GET参数时,我通常使用:
$var = htmlspecialchars(stripslashes(strip_tags(trim($_GET['var']))), ENT_QUOTES);
但如果$ _GET参数只是整数(只有0-9个字符),我应该使用:
$var = htmlspecialchars(stripslashes(strip_tags(trim(preg_replace('/\D/', '', $_GET['var'])))), ENT_QUOTES);
或简单:
$var = preg_replace('/\D/', '', $_GET['var']);
它仍然安全吗?谢谢你的回复!
答案 0 :(得分:2)
如果变量验证失败,你不应该接受并继续:(更安全!)
使用$_GET
函数
filter_var
参数
if (!filter_var($_GET['var'], FILTER_VALIDATE_INT) === false) {
echo("Variable is an integer");
} else {
echo("Variable is not an integer");
}