ホームページ >バックエンド開発 >PHPチュートリアル >インジェクション攻撃を防ぐために SQL で動的テーブル名を安全に使用するにはどうすればよいですか?
動的テーブル名による SQL インジェクションの防止
動的テーブル名による SQL インジェクションに関する懸念は、テーブル名が操作される可能性から生じます。悪意のあるコマンドを実行します。ただし、mysql_real_escape_string または PDO を使用するだけでは、この目的には不十分です。
mysql_real_escape_string
mysql_real_escape_string は、文字列値を囲む引用符をエスケープすることでデータを保護するように設計されています。ただし、動的テーブル名で重要なバックティック文字に対処できません。
PDO
PDO は、データの衛生化を提供しますが、この保護を次のユーザーに拡張しません。動的テーブルnames.
解決策
このようなシナリオで SQL インジェクションを防ぐ最善の戦略は、動的テーブル名を完全に避けることです。あるいは、必要に応じて、動的テーブル名が SHOW TABLES クエリを通じて取得された有効な値のリストと一致することを確認するために、厳密な検証を実行する必要があります。
追加メモ
SQL インジェクションの脆弱性から効果的に保護するには、動的テーブル名を扱うときは注意し、データ サニテーション技術の制限を十分に理解することが重要です。
以上がインジェクション攻撃を防ぐために SQL で動的テーブル名を安全に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。