preg_replace整数和安全性

时间:2017-03-19 09:59:48

标签: php security preg-replace

当我想保护$ _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']);

它仍然安全吗?谢谢你的回复!

1 个答案:

答案 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");
}