0

我试图使我的查询对 SQL 注入安全,幸运的是,可以定位的变量只是整数或浮点数,所以我想知道在这种情况下,使用 sprintf() 是否足够(甚至不使用 mysqli_real_escape_string ())。我做了一些测试,到目前为止它看起来不错,因为它将任何输入解析为浮点/整数,因此不应执行任何 SQL 语句。有没有办法破解这个?对我来说它看起来太简单太美妙了:D

4

3 回答 3

1

为什么不使用准备好的语句?它们为 SQL 注入提供了更好的保护,如果它们被重用,还可以提高查询性能。

于 2013-04-05T11:07:35.423 回答
-2
$int = 125 . 'asda';
$float = 654.12;

function validateNumber($number) {
    if (strpos($number, '.')) {
        $number = floatval($number);
    } else { 
        $number = intval($number);
    }
    return $number;
}

echo validateNumber($int); // 125
echo '<br />';
echo validateNumber($float); // 654.12

Checking if number is int or float and returning their values.

于 2013-04-05T10:55:51.347 回答
-2

使用 sprintf() 就足够了

是的。

于 2013-04-05T10:59:47.097 回答