如何防止Android中的SQL注入?
Posted
技术标签:
【中文标题】如何防止Android中的SQL注入?【英文标题】:How to prevent SQL injection in Android? 【发布时间】:2019-10-24 15:14:36 【问题描述】:安全警报
您的应用包含 SQL 注入漏洞。有关详细信息,请参阅此 Google 帮助中心文章。
易受攻击的类:
provider/FormsProvider;->查询
影响 APK 版本 6。
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
String sortOrder)
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables(FORMS_TABLE_NAME);
switch (sUriMatcher.match(uri))
case FORMS:
qb.setProjectionMap(sFormsProjectionMap);
break;
case FORM_ID:
qb.setProjectionMap(sFormsProjectionMap);
qb.appendWhere(FormsColumns._ID + "=" + uri.getPathSegments().get(1));
break;
default:
throw new IllegalArgumentException("Unknown URI " + uri);
// Get the database and run the query
SQLiteDatabase db = mDbHelper.getReadableDatabase();
Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder);
// Tell the cursor what uri to watch, so it knows when its source data changes
c.setNotificationUri(getContext().getContentResolver(), uri);
return c;
请帮助我。如何防止来自 Google Play 控制台的 SQL 注入安全警报。
【问题讨论】:
你知道什么是 SQL 注入漏洞吗?Please fix the issue before: 09/16/2018
太晚了,抱歉。
【参考方案1】:
请阅读更多关于 SQL 注入的信息here。
切勿将原始(未经处理的)用户输入放入 SQL 查询中。 我建议使用处理这些事情并防止可能的 SQL 注入的库。我个人使用Room,但也可以看看Requery
【讨论】:
以上是关于如何防止Android中的SQL注入?的主要内容,如果未能解决你的问题,请参考以下文章