2017-03-19 6 views
0

私は通常使用$ _GETパラメータ確保したい:にpreg_replace整数とセキュリティ

$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

はい、 '/ \ Dは、/'受け入れることは安全でなければなりません整数のみ数字 – RomanPerekhrest

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