我有一个简短的问题-下面的代码在任何版本的PHP中是否容易受到sql注入的影响?
$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']);
OR
$A = (int) $_GET['A'];
不推荐使用mysqli_query()
,因此您还应该切换到方法mysql_query()
。