查询示例 - sql 注入是否安全?
Query example - safe or not for sql injection?
我有一个简短的问题 - 下面的代码是否易受 sql 注入任何版本 PHP 的攻击?
$A = $_GET['A'];
$B = 10;
$q = "SELECT 1 FROM user WHERE name = 'admin' LIMIT ".($A*$B).",$B";
$res = mysql_query($q);
...
我在我的客户网站上看到了那种代码,让我开始思考......但找不到任何攻击向量:)
这是 SQL 安全的,因为变量 $A 正乘以整数 $B。但是,所有 GET 变量都存储字符串值,因此将 $A 类型转换为整数会很聪明,如下所示:
$A = intval($_GET['A']);
或
$A = (int) $_GET['A'];
您还应该切换到方法 mysqli_query()
,因为 mysql_query()
已弃用。
我有一个简短的问题 - 下面的代码是否易受 sql 注入任何版本 PHP 的攻击?
$A = $_GET['A'];
$B = 10;
$q = "SELECT 1 FROM user WHERE name = 'admin' LIMIT ".($A*$B).",$B";
$res = mysql_query($q);
...
我在我的客户网站上看到了那种代码,让我开始思考......但找不到任何攻击向量:)
这是 SQL 安全的,因为变量 $A 正乘以整数 $B。但是,所有 GET 变量都存储字符串值,因此将 $A 类型转换为整数会很聪明,如下所示:
$A = intval($_GET['A']);
或
$A = (int) $_GET['A'];
您还应该切换到方法 mysqli_query()
,因为 mysql_query()
已弃用。