Определение SQL InjectionЧто делает приложение для Android уязвимым для SQL-инъекции?
SQL инъекция является метод инъекции кода, используется для атаки управляемых данными приложений, в которых вредоносные заявления SQL вставляются в поле ввода для выполнения (например, сбросить содержимое базы данных в атакующий).
Как SQL Injection влияет на Android O.S
SQLite используется в Android программы и приложения полностью работоспособны базы данных, так же, как SQL Server или MySQL поле они могут быть восприимчивы к SQL инъекции. SQL-инъекция обычно работает путем добавления данных в строку запроса или добавления данных в поле формы; предоставить хакерам доступ к базе данных или несанкционированным входам. SQL Injection обычно используется для атаки веб-представлений или веб-службы, но ее также можно использовать для атаки.
Основная причина уязвимости SQL Injection связана с использованием динамических или конкатенированных SQL-запросов. Если SQL-запросы создаются путем объединения введенных пользователем входов; Затем пользователь может снабжать векторы атаки SQL вместо действительных входов и манипулировать бэкэнд-SQL-запросом.
Процесс впрыска работает, преждевременно завершая текстовую строку и добавляя новую команду. Поскольку вставленная команда может иметь дополнительные строки, добавленные к ней перед ее выполнением, введенная строка заканчивается знаком комментария «-». Последующий текст игнорируется во время выполнения.
Мой вопрос
Хотя я понимаю, что SQL Инъекции и как SQL Injection может иметь место. Я не знаю , какие факторы делают выбор кода Android уязвимым для такой атаки.
SQL в sqlite на android вряд ли удастся добиться многого, так как по определению он изменяет/обходит данные, которые являются УЖЕ на устройстве пользователя.но его можно было бы использовать (скажем), чтобы обойти paywall в демонстрационной версии бесплатного приложения и разблокировать его. это было бы катастрофой. «zomg, кто-то не наблюдает за моими глупыми рекламными объявлениями пениса» –
это происходит, если вы непосредственно выполняете запрос с пользовательским вводом без предварительной дезинфекции. SQL.Execute («SELECT * FROM USERS WHERE name» + mytextview.gettext.tostring()) –
[Тот же вопрос по Security.SE] (http://security.stackexchange.com/q/89897/539) – Gumbo