SQLインジェクションがサイトのテキストボックスで機能しないかどうかをテストするにはどうすればよいですか?SQLインジェクションがブロックされているかどうかをテストするには?
答えて
通常、入力フィールドのデータがどのように実際の選択に到達するか考える必要があります。 SQL文を終了して別の文を開始するには、そのフィールドにどのような種類のテキストを置くことができるのかを知ったら、
たとえば、コードに'select * from table where id = ' . $_GET['id']
というようなことをしていて、script.php?id=0%20OR%20true; drop table table;
で電話すると、2つのステートメントを実行できます。
しかし、一般に、連結することによって選択を構築することは避けるべきです。他のレスポンダが示唆しているように、バインドされたパラメータを使う方が良い。
バインドされたパラメータなど、設計上不可能であることを保証するメカニズムを使用します。その後、SQLインジェクション抵抗のテストは必要ありません。
別の言い方をすると、アドホックエスケープコードに頼らないでください。それは100%正しいとは思わないでしょう。
それでは、単純なアプリケーションでは成功したかどうかをどのようにテストしますか? –
@Jens:IMHO、この種のことは意味あることに単体テストすることは非常に難しいです。あらかじめ定義された「典型的な」攻撃文字列のリストを使ってテストすることもできますが、実際にはそれほど実証されていません。これは本当にシステムレベルの設計の一貫性の問題です。 –
私は同意します。テストする必要はありません。さもなければ、テストするのはすべて – gbn
ただ、この文字列を入力してください:何のエスケープアクションではありません
'";
場合、これは確かにあなたのSQLを中断します。
詳細はthis site about better Stringsとthis questionを参照してください。
通常のチェックでは、すべての特殊記号をフィールドに一度追加して、SQLエラーがないかどうかを確認します。エラーがなく、レコードがDBに正しく挿入されていれば問題ありません。
あなたはあなたのコードに対する攻撃を作成するには、このリストを使用することができます。http://ha.ckers.org/sqlinjection/
また、「危険な」文字と文字の組み合わせのリストをアセンブルし、それから(擬似)-random入力値を作成することができます。
- 1. ホスティングがサポートされているかどうかをテストする
- 2. ブロックが呼び出されたかどうかをテストする方法
- 3. SQLインジェクションの脆弱性がPROGRAMMATICALLYかどうかを確認するには?
- 4. Opencartモジュールがインストールされているかどうかをテストする方法は?
- 5. スレッドがブロックされているかどうかを確認する
- 6. タスクスレッドがブロックされているかどうかをチェックする方法
- 7. SQLインジェクションを防ぐためにクエリコマンドをブロックしていますか?
- 8. フォントがインストールされているかどうかのテスト
- 9. ソケットが接続されているかどうかのテスト
- 10. バッファがフラッシュされているかどうかのテストR
- 11. メソッドが定義されているかどうかのテスト
- 12. フォントがインストールされているかどうかのテスト(Win32)
- 13. PythonモジュールがインストールされているかどうかChefSpecテスト
- 14. PHPがインストールされているかどうかのテスト
- 15. ASPテーブルが表示されているかどうかのテスト
- 16. Reactコンポーネントがレンダリングされているかどうかのテスト
- 17. UE4 pawnが制御されているかどうかのテスト
- 18. SQL ServerインスタンスがCで実行されているかどうかを効率的にテストする方法
- 19. PDOがSQLインジェクションをエスケープしていることは、どのようにわかりますか?
- 20. SQLParameterはSQLインジェクションをどのように防止しますか?
- 21. テンプレートがmochaテストでiron:routerルート用にレンダリングされているかどうかをテストするにはどうすればよいですか?
- 22. オートプレフィクサーが動作しているかどうかをテストするにはどうすればよいですか?
- 23. スパースファイルがサポートされているかどうかをテストする方法
- 24. DIVが表示されているかどうかをテストする関数
- 25. ウィンドウがドラッグされているかどうかをテストする方法C#WPF
- 26. Grand Central Dispatchを使用して、ブロックが既に実行されているかどうかを確認するにはどうすればよいですか?
- 27. Spotifyがインストールされているかどうかをテストしますか?
- 28. このコードはSQLインジェクションから保護されていますか?
- 29. ESIはブロックされているか、ブロックされていませんか?
- 30. renderer.render()はブロックされているか、ブロックされていませんか?
もっと具体的にする必要があります。テキストをデータベースに入力する前に、どのようにエスケープしていますか? – Savetheinternet
内部コードを表示できますか?テキストボックスの使用方法一般的な方法はありません。使用しているクエリに依存します。 –