重複の可能性:
SQL インジェクションを防ぐ最善の方法は?
mySQL データをプルして Web サイトに表示するために使用する php スクリプトが、SQL インジェクション攻撃に対して非常に脆弱であることに気付きました。これらの攻撃から保護するためにどのようなプラクティスが使用されていますか?
重複の可能性:
SQL インジェクションを防ぐ最善の方法は?
mySQL データをプルして Web サイトに表示するために使用する php スクリプトが、SQL インジェクション攻撃に対して非常に脆弱であることに気付きました。これらの攻撃から保護するためにどのようなプラクティスが使用されていますか?
あなたの投稿へのすべてのコメントは良い提案です。私は個人的に、 PHPのPDOを介してプリペアドステートメントを使用することを好みます。
ユーザーから取得するすべてのパラメーター(直接または間接)、明示的に設定していない変数からクエリに挿入するすべての値などは、プリペアドステートメントを使用してクエリに挿入する必要があります。例外なし。より経験豊富な開発者は、いくつかの例外を除いて逃げることができますが、例外はありません。
いくつかの例については、PHPドキュメントのPDO::prepareを参照してください。
入ってくるものをエスケープするために使用mysqli_real_escape_string
することは、最低限行うべきことです。
また、準備済みステートメントの使用を検討することもできます。
詳細はこちら: http://php.net/manual/en/security.database.sql-injection.php