可能性の重複:
Are dynamic mysql queries with sql escaping just as secure as prepared statements?mysqli_real_escape_stringを使用してクエリ文字列を保護していますか?
は、クエリを確保するだけの十分なmysqli_real_escape_string
を使用していますか?データベースを安全に照会しようとすると、さらに検討する必要がありますか?
可能性の重複:
Are dynamic mysql queries with sql escaping just as secure as prepared statements?mysqli_real_escape_stringを使用してクエリ文字列を保護していますか?
は、クエリを確保するだけの十分なmysqli_real_escape_string
を使用していますか?データベースを安全に照会しようとすると、さらに検討する必要がありますか?
どこでも正しく使用されている場合real_escape_stringはオプションです。次のコードを検討してください:
$page = $_GET['page'];
$sql = 'SELECT `name` FROM `user` WHERE `id` = ', mysqli_real_escape_string($page);
安全かどうかを確認します。 real_escape_ 文字列は、引用符で囲んだ文字列をエスケープするためにのみ使用できます。 $page
は1 OR id IN (2,3,4,5,6,7,8,9)
になります→引用符はなく、実際のエスケープはありません。正しいデータ型(int)にキャストすると、この場合に役立ちます。あなたは準備されたステートメントを使うほうがいいですが、使い方が簡単ではありません。
@irc I *は*作業中です。それはちょうど私が言うつもりだったので、今あなたの答えを使用するかもしれません。 – NullUserException
準備済みの文を使用できます。 ircmaxwellのコメントのリンクに従ってください。 – NullUserException
あなたは何をしているのかの例を見せてもらえますか? –