Android: RESTful JDBC Proxy. Производительность и безопасность - PullRequest
0 голосов
/ 04 мая 2018

Мы хотели использовать облачный бэкэнд для хранения данных приложений Android. Наша серверная СУБД - это известный сервер MySQL, который поставляется с MySQL Connector / J (официальный сетевой адаптер MySQL JDBC, который может подключаться к удаленной базе данных MySQL).

Теперь проблема в том, что мы не можем использовать этот MySQL Connector / J в Android, так как он не разработан для Android. Итак, мы создали класс REST с четырьмя методами rest / query, / insert, / update, / delete. Все эти методы принимают JSON Object, который упаковывает параметры соответствующих методов Android ContentProvider. / query rest метод возвращает табличные данные набора результатов в формате JSON.

Затем мы написали Android ContentProvider, который действует как прокси для вызова наших вышеупомянутых методов отдыха. Метод ContentProvider.query () вызывает метод запроса / rest и преобразует полученный набор результатов JSON в Cursor для его возврата.

Благодаря этой архитектуре код нашего сервера становится универсальным без какой-либо бизнес-логики И наше приложение для Android не знает, поступают ли данные с облачного сервера или локальной базы данных. Практически все это работает нормально.

Итак, вопрос в том, насколько безопасна эта архитектура? с точки зрения взлома. И как это повлияет на производительность Android-приложения? Пожалуйста, помогите нам с вашими ценными комментариями / ответами.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Кто угодно может декомпилировать ваш код, найти этот сервис, и если он нарушит безопасность вашего сервиса, он может сделать неприятные вещи с вашей базой данных. Он может просматривать вашу базу данных, красть данные, портить данные. Взломщики ищут SQL-инъекции в Интернете - и вы предоставляете прямой доступ к базе данных.

Не делай этого. Создайте сервис для каждого варианта использования, который будет проверять / экранировать параметры, а затем вызывать подготовленный оператор JDBC.

0 голосов
/ 04 мая 2018

Вы не должны подключаться напрямую из приложения Android к базе данных (MySQL), это даст вам не очень хорошую производительность. Я рекомендую вам приобрести API Webservice, который будет подключаться к базе данных и получать, следовательно, из приложения Android подключаться и получать данные из Webservice. Я надеюсь, что это полезно для вас.

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