私はすべてに 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...
}
つまり、私が本当に求めているのは、これらのコード ブロックの 1 つが別のコード ブロックよりも本当に安全かどうかということです。
編集: 申し訳ありませんが、これを早く述べませんでしたが、mysql ではなく oracle 10g データベースを使用しています。oci_connect(); を使用