我对所有内容都使用 is_numeric,我从用户那里得到的唯一输入是带有学生 ID 号的表格......
我最近在阅读 SQL 注入,想知道是否需要采取以下预防措施?
目前我有:
if(is_numeric($_POST['sid']){
$sid = $_POST['sid'];
$query = "select * from student where sid='".$sid."'";
// More Code...
}
我读过的更安全
if(is_numeric($_POST['sid']){
$sid = (int) $_POST['sid'];
$query = "select * from student where sid='".$sid."'";
// More Code...
}
一个版本真的比另一个更安全吗?有人会如何绕过“is_numeric”?
另外,这会比我目前拥有的安全吗?
if(is_numeric($_POST['sid']){
$query = "select * from student where sid='".$_POST['sid']."'";
// More Code...
}
所以,我想我真正要问的是,这些代码块中的一个是否真的比另一个更安全
编辑:对不起,我没有这么早说明,但我使用的是 oracle 10g 数据库,而不是 mysql。使用 oci_connect();