Как предотвратить внедрение SQL в Android? - PullRequest
0 голосов
/ 10 июня 2019

Предупреждение системы безопасности

Ваше приложение содержит уязвимость 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;
    }

Пожалуйста, помогите мне.Как я могу предотвратить предупреждение безопасности SQL-инъекции из консоли Google Play.

1 Ответ

0 голосов
/ 10 июня 2019

Пожалуйста, прочитайте больше о SQL-инъекции здесь .

Вы НИКОГДА не должны помещать необработанные (неанизированные) пользовательские данные в SQL-запрос.
Я предлагаю использовать библиотеки, которые обрабатывают эти вещи и предотвращают возможные инъекции SQL. Я лично использую Комната , но взгляните также на Требование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...