如何防止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注入?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server如何防止动态sql中的sql注入

如何防止nodejs中的sql注入和续集? [关闭]

使用“database/sql”时如何防止 Go 中的 SQL 注入攻击?

如何防止 JSP 中的 SQL 注入?

如何防止 PYTHON-DJANGO 中的 SQL 注入?

如何防止sql注入攻击?