是(int)$ _ GET ['user_input']安全吗?

时间:2014-12-20 12:59:00

标签: php security user-input

中假设是否安全
if (($i = (int)trim($_GET['user_input'])) != 0) {
    // do stuff with $i
}

$i只能是一个整数?


修改

我现在用:

if (ctype_digit($i = $_GET['user_input'])) {
    // do stuff with $i
}

4 个答案:

答案 0 :(得分:0)

检查

if(stripslashes(trim($_GET['user_input']))) > 0){
//your code Here 
}

答案 1 :(得分:0)

因此,如果您唯一的问题是,无论如何都是int,那么答案是:

但是如果转换为int失败(例如输入:'a'$i只是0

示例:

输入/输出:

4       ->  4
-5      -> -5
"14"    -> 15
"a"     ->  0
"!"     ->  0
array() ->  0

旁注:

如果值是数组修剪失败并且您收到错误

答案 2 :(得分:0)

$i = intval($_GET['user_input']);
if ( $i != 0) {
    // do stuff with $i
}

检查文档here

答案 3 :(得分:0)

如果检查整数,则

if(is_numeric($_GET['user_input']) && $_GET['user_input'] > 0) {
//your code
}