phpとmysqlを使ってWeb上のデータベースでコーディングする場合、データベースに挿入する前にデータをサニタイズする必要があります。誰かが引用符などをエスケープしないようにする必要があります。それは自動的に消毒するのですか?それとも不必要なのですか?データベースのサニタイズ
答えて
1)はい、プラットフォームを必要とせず、信頼できないソース(ユーザー、別のシステム、別のアプリケーションなど - アプリケーションにハードコードされていないもの)からの入力をすべて消毒する必要があります。
2)はい、SQLiteデータベースにアクセスするときは、Androidでこれを行う必要があります(直接またはコンテンツプロバイダ経由)。
3)データベースへのSQLコマンドで入力をサニタイズする必要がありますが、すべての形式のSQLインジェクションを防ぐことはできません。これを防ぐための最善の戦略は、パラメータ化されたクエリを使用することです。これにより、データとは何かを意味するものとコマンドであるものとを区別することができるため、不正な入力が入り込んでSQLコマンドがデータデータベースはそれらをデータとして扱うことを知っています。標準のJavaコーディングでは、PreparedStatementsを使用します。 SQLite/Androidでは、データのプレースホルダ(信頼できない入力から派生したもの)を使用してクエリを作成し、bindString
を使用してこれらのプレースホルダを設定すると、compileStatement
を使用する必要があります。
これについての詳細は、OWASP SQL Injectionライトアップをご覧ください。
データのサニタイズ方法について教えてください。 あなたの答えは "_In SQLite/Androidでは、データのプレースホルダ(信頼できない入力から派生したもの)でクエリを作成し、それらのプレースホルダを設定するためにcompileStatementを使用する必要があります._"コンテンツプロバイダメソッドdelete()、query、update()など? – Priya
これはインターネットを含む他の場所でも同様に同様に適用されます。
あなたが本当に注意する必要があることは、コンテンツプロバイダへのあなたの入力です。一般的に、コンテンツプロバイダはコンテンツプロバイダを作成し、それらを使用して他のユーザーが自分のアプリとインターフェースできるようにします。しかし、通常、フードの下では、ContentProviderはデータベースへのインタフェースとして機能します。これは、あなたがアプリのコンテンツプロバイダに電話上の他のアプリからアクセスできるようにする場合には特に注意する必要がある場所です。
はい、ユーザーがデータを入力できる他の場所でも、注意する必要があります。これには、編集可能なテキストフィールド、インターネットからダウンロードするもの、基本的に信頼できないものなどが含まれます。
汚染分析TaintDroidを実行するプロジェクトがありますが、それはシステムフォームとしてのみ存在します(つまり、すべてのシステムで利用可能なランタイム変更に基づいて動作します)。しかし、現在何が行われているのか、この問題を防ぐのに役立つデータの流れを追跡するための研究プロジェクトがいくつかあります。 (Scandroid [1]いくつかの1名に。)
[1] SCanDroid:Androidアプリケーションの自動化されたセキュリティ認証、 www.cs.umd.edu/~avik/papers/scandroidascaa.pdf
- 1. Javaでのデータベース入力のサニタイズ方法は?
- 2. LDAP_bindクエリのサニタイズ
- 3. 配列のサニタイズ
- 4. データベースから取得したデータのエスケープ/サニタイズ
- 5. データベースからデータをサニタイズする必要はありますか?
- 6. Rails HTMLサニタイズ
- 7. Tastypieサニタイズ入力?
- 8. .Net DbCommandサニタイズ入力
- 9. jQuery AjaxとPHPのサニタイズ
- 10. アクティブレコードのデータをサニタイズする
- 11. PHPパスワード文字列のサニタイズ
- 12. Oracleデータベースへの入力に対するSQLインジェクションに対するサニタイズ
- 13. データをフィルタリング/サニタイズする場合:データベース挿入前または表示前?
- 14. 入力サニタイズVS検証
- 15. Railsサニタイズ宝石の3つの質問
- 16. pingプログラムへのPHP入力のサニタイズ
- 17. open(url)からのコンテンツのサニタイズ.read
- 18. Cakephpのセキュリティと表示のサニタイズ
- 19. WordPressのインラインリンクをサニタイズしますか?
- 20. 信頼できないHTML5のサニタイズ
- 21. enumchildwindows APIのサニタイズ/構造化出力
- 22. URLにあるユーザ名のサニタイズ方法
- 23. PHPのサニタイズに関する質問
- 24. ApacheでGETクエリをサニタイズする
- 25. @ Html.Textareaは入力をサニタイズしますか?
- 26. asp.net mvcでxssをサニタイズする
- 27. 入力をサニタイズする.NETライブラリ?
- 28. XSS攻撃 - サニタイズ入力vs拒否
- 29. RailsでMarkdownをサニタイズしますか?
- 30. ユーザー入力をlaravelでサニタイズする
参考までに、単語は墨塗りです – xbonez
hahaはい、申し訳ありません。ワードは二階にスクランブルしています:) – bwoogie
Heh、私は "DROP DATABASE; :D –