Синхронизация мобильных данных (SQLite) с серверными данными (Mysql) по горизонтали (по строкам) - PullRequest
0 голосов
/ 04 ноября 2018

Я создаю мобильное приложение, в котором я хочу, чтобы данные для сохранения были доступны на нескольких устройствах только для входа в систему.

E.g. Если пользователь входит в мобильное приложение, только его записи (данные) должны быть синхронизированы (доступны в автономном режиме), возможно, с использованием уникального идентификатора пользователя.

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

Я читал об использовании фильтров в sqlite-sync, но я не увидел ничего, что могло бы помешать пользователю манипулировать фильтром и синхронизировать другие записи пользователя.

Какой метод лучше всего использовать для синхронизации только записей пользователя только безопасным способом (с использованием идентифицированного идентификатора пользователя)?

1 Ответ

0 голосов
/ 04 ноября 2018

Используйте трудно угадываемую произвольную текстовую строку для вашего subscriberId. Строка CHAR(10), закодированная в Base64, может содержать 50 бит случайности. Это довольно сложно догадаться.

Когда пользователь аутентифицируется (входит в систему), передайте subscriberId в ваше мобильное приложение.

Когда вы создаете новую учетную запись пользователя, используйте высококачественный генератор случайных чисел, чтобы сделать ее новым subscriberId.

Не разрешать поиск данных из вашего мобильного приложения по серийному номеру пользователя, только по subscriberId.

Если ваш сервер получает запрос на несуществующий subscriberId, кто-то пытается угадать действительные значения. Отключите этого человека.

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