Если пользователь не вводит текст, то SQL Впрыск крайне маловероятен.
Однако, если вы полностью используете вспомогательные методы и / или rawQuery exe cSQL со вторым параметром, передавая любые значения через второй параметр, тогда значения будут связаны, что защищает от внедрения SQL .
- Предполагается, что вы используете стандартную базу данных SQLite согласно SDK.
Примеры вставки строк
В этом примере используется exe cSQL (обе формы) и удобный метод insert , чтобы продемонстрировать принципы использования связанных аргументов и в первом примере не использовать связанный аргумент.
theSQLitedatabase.execSQL("INSERT INTO mytable VALUES('" + userdata + "')"); //<<<<<< potential for injection
theSQLitedatabase.execSQL("INSERT INTO mytable VALUES(?)",new String[]{userdata}); //<<<<< protects as value is bound by SQLite itself
/* Uses the convenience method that builds the SQL (as per 2nd example) and protects */
ContentValues cv = new Contentvalues();
cv.put(the_column_name_as_a_string,userdata);
theSQLitedatabase.insert("mytable",null,cv);