いくつかの例と人々がこの方法でログインフォームでデータベースを照会しているのを見ました。 これがログインフォームを安全にする最良の方法であるかどうかは十分にはわかりません。ログインフォーム用のシンプルなSQLインジェクションソリューション?
これは、PHPでのクエリです:
$query = "SELECT * FROM users WHERE usern = '".$_POST['username']."' AND passw = '".md5($_POST['password'])."'";
は十分なSQLインジェクションを防ぐために、パスワードのポスト上)(MD5をしています?。 私は、md5関数はすべての文字とSQL文字列を32文字の文字列に変換すると思います。
ログインフォームを保護するその他の方法はありますか?
+1準備されたステートメントの場合**データ**として挿入しようとしているデータを渡す方が、あなたが書いたSQL文字列をユーザからの信頼できない文字列と混同させるよりもずっと役に立ちます – Deebster
あなたは** "mysql_real_escape_string()" **は "%"をエスケープしません。 php.net/manual/en/function.mysql-real-escape-string.phpのノートセクションをチェックしてください。 –
はい、それは 'LIKE'を使うときの唯一の問題です。 'addcslashes()'を使ってそれを手助けすることができます。 – MichaelRushton