PHP5.3 は eregi() 関数をサポートしていません。preg_match を使用して変換するにはどうすればよいですか?神様にアドバイスを求めてください!
function inject_check($sql_str) {
$check=eregi('select|insert|update|delete|'|\*|*|../|./|union|into|load_file|outfile', $sql_str); // Filter
if($check){
echo "不正な挿入コンテンツを入力してください!";
exit();
}else{
return $sql_str;
}
}
今日、SQL インジェクションを防ぐいくつかの方法を見つけるためにオンラインにアクセスしましたが、実行後、eregi() 関数がバージョン 5.3 では使用できないことがわかり、有効期限が切れた関数があるので、オンラインで探してみました。情報によると、オンラインのコメントでは、eregi() 関数の代わりに preg_match() 関数が使用されているとも書かれていますが、関数名を に変更すると機能しません。 preg_match パラメータが間違っているようです。正しい preg_match を変更する方法を教えてください。ありがとうございます。
-----解決策---------
preg_match('/select|insert|update|delete|'|\*|*|../|./|union|into|load_file|outfile/i',$sql_str); <br><font color="#e78608">------解決策------------------</font><br>
関数 inject_check($sql_str) { $check=preg_match('/select|insert|update|delete|'|\*|*|../|./|union|into|load_file|outfile/i',$sql_str); // フィルタ if($check){ echo "不正な挿入コンテンツを入力してください!"; 出口(); }それ以外{ $sql_str を返します。 } <div class="clear"></div>