0

androidコンテンツプロバイダーガイドでは、データベースからデータを選択するときに、使用しないString mSelectionClause = "var = " + mUserInputmUserInputnothing; DROP TABLE *;テーブル全体が削除されると記載されています。

したがって、次の方法をお勧めします。

String mSelectionClause = "var = ?";
String[] selectionArgs = {""};
selectionArgs[0] = mUserInput;

わからないので、の値が、の場合mUserInputnothing; DROP TABLE *;同じことをしString mSelectionClause = "var = nothing; DROP TABLE *;"ませんか?

4

1 に答える 1

0

クエリのクエスチョン マークは値 ( )に直接置き換えられません。mUserInput

データベースや実行 (コード) ライブラリの内部メカニズムは、SQL インジェクションやその他の悪意のある攻撃を防ぐために、提供された値を安全にする方法を知っています。

: この手法は Android 固有のものではありませんが、すべてのプログラミング言語/環境のすべてのデータベースで使用できます (または少なくとも使用できるはずです)。

于 2012-11-10T23:12:02.523 に答える