mysql_real_escape_string() は SQL インジェクション攻撃を完全に防ぐことができますか?
作業中の SQL インジェクションに対する mysql_real_escape_string() の有効性について懸念が生じています。ある種のアジア人の性格を持つ
バイパスの問題
情報源によると、mysql_real_escape_string() は Big5 または GBK 文字エンコーディングを使用したバイパスに対して脆弱である可能性があります。これらのエンコーディングでは、バックスラッシュが 2 番目、3 番目、または 4 番目のバイトとして表示されることが許可されており、エスケープ プロセスが中断される可能性があります。
緩和戦略
mysql_real_escape_string() は、どのような場合でも完全に信頼性があり、SQL を防ぐ代替手段があります。インジェクション:
プリペアド ステートメントがない場合
プリペアド ステートメントがオプションでない場合は、次の点を考慮してください。
結論
ですがmysql_real_escape_string() は完全に改ざん防止機能があるわけではありませんが、SQL インジェクションを防ぐための貴重なツールであることに変わりはありません。 UTF-8 エンコードや入力フィルタリングなどの追加の緩和戦略を実装することで、悪意のある攻撃のリスクを大幅に軽減できます。
以上がmysql_real_escape_string() は SQL インジェクション攻撃に対する完全な保護を提供しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。