ホームページ >データベース >mysql チュートリアル >SQL クエリで単一引用符をエスケープすることは、インジェクション攻撃に対する確実な保護になりますか?
SQL インジェクションに対する防御: データ エスケープ戦略の有効性の評価
パラメータ化された SQL クエリはユーザー入力をサニタイズする最良の方法と考えられていますが、一重引用符をエスケープしたりユーザー入力を一重引用符で囲んだりする基本的な入力サニタイズ手法の有効性を疑問視する開発者もいます。
ディスカッション中に、ある開発者が入力サニタイズに使用したコードを披露しました:
<code>sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'"</code>
この方法により、ユーザーが文字列を終了したり他のコマンドを実行したりすることができなくなり、SQL インジェクション攻撃の可能性が排除されると彼らは考えています。ただし、一部の専門家は、この方法には固有の欠陥があるため、この方法の使用を警告しています。
まず、ブラックリストベースの入力検証には本質的に問題があります。より効率的なアプローチは、許容可能な値と形式のホワイトリストを定義して、有効な入力のみが処理されるようにすることです。
https://www.imperva.com/docs/WP_SQL_Injection_Protection_LK.pdf にあるようなこのトピックに関する研究論文は、引用符のエスケープさえもバイパスできるという証拠を提供しており、クリーニング技術の基本的な入力の制限をさらに強調しています。
推奨される SQL インジェクション防止方法は次のとおりです:
一重引用符をエスケープする手法は、表面的には適切であるように見えますが、最終的には信頼性が低く、SQL インジェクション攻撃を効果的に防止するには、より堅牢で包括的なセキュリティ戦略に置き換える必要があります。
以上がSQL クエリで単一引用符をエスケープすることは、インジェクション攻撃に対する確実な保護になりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。