MySQL PHP インジェクション防止
オンラインでたくさん見つけました。それらのほとんどはエラーを報告します。または、アンチインジェクション機能は使用できません。
if (get_magic_quotes_gpc()) { $lastname = stripslashes($_POST['lastname']);}else { $lastname = $_POST['lastname'];}// 如果使用 MySQL$lastname = mysql_real_escape_string($lastname);$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
if (get_magic_quotes_gpc()) { $lastname = stripslashes($_POST['lastname']);}else { $lastname = $_POST['lastname'];}// 如果使用 MySQL$lastname = mysql_real_escape_string($lastname);$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
これを関数にカプセル化し、値によって呼び出すことができます。
Han Shuping の「PHP データベース プログラミング トラップ ビデオ チュートリアル」というインジェクション反対ビデオを見ることをお勧めします。 http://php.itcast.cn/news/5805c1ea/1b18/41eb/8fcc/6234659d8b40.shtml これが接続です。
それを関数にカプセル化し、値によって呼び出すことができます。
はい、ただし関数を呼び出すのは面倒です。取得した値をそれぞれ 1 回書き込む必要があります。
mysqli と PDO はどちらもデータ バインディングを提供するため、自分で処理する必要はありません
ただし、自己責任であり、トラブルを恐れることはできません
キーワード フィルタリングを実行するメソッドを提供します。送信された変数などについて
$perl="/select|update|delete|insert|alter/iUs";
$str=preg_replace($perl,"",$str);