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. WordPressのMySQLデータベースにURLをサニタイズする
- 2. Javaでのデータベース入力のサニタイズ方法は?
- 3. 配列のサニタイズ
- 4. HTMLコードのサニタイズ
- 5. LDAP_bindクエリのサニタイズ
- 6. データベースから取得したデータのエスケープ/サニタイズ
- 7. データベースからデータをサニタイズする必要はありますか?
- 8. ReactJSの入力サニタイズ
- 9. Tastypieサニタイズ入力?
- 10. Rails HTMLサニタイズ
- 11. サニタイズ入力$ _POST
- 12. 角4サニタイズ/エスケープクエリパラメータ
- 13. Wordpress - サニタイズAROUNDショートコード
- 14. サニタイズBoost.Pythonモジュール
- 15. AngularJSとサニタイズ - ngBind指令なしのサニタイズHTML
- 16. JSONをphpでサニタイズ
- 17. .Net DbCommandサニタイズ入力
- 18. チェックボックスのサニタイズ方法は?
- 19. PHPパスワード文字列のサニタイズ
- 20. jQuery AjaxとPHPのサニタイズ
- 21. 角2入力のサニタイズ
- 22. アクティブレコードのデータをサニタイズする
- 23. Oracleデータベースへの入力に対するSQLインジェクションに対するサニタイズ
- 24. MySQLデータベースのサニタイズされた一重引用符を照会します。
- 25. データをフィルタリング/サニタイズする場合:データベース挿入前または表示前?
- 26. 入力サニタイズVS検証
- 27. 角度$サニタイズ対NG-バインドHTML
- 28. キャメルパスワードが部分的にサニタイズ
- 29. pythonでシェル= Trueのサブプロセスのサニタイズ入力
- 30. pingプログラムへのPHP入力のサニタイズ
参考までに、単語は墨塗りです – xbonez
hahaはい、申し訳ありません。ワードは二階にスクランブルしています:) – bwoogie
Heh、私は "DROP DATABASE; :D –