首页 > 解决方案 > 将移动数据 (SQLite) 与服务器数据 (Mysql) 水平同步(按行)

问题描述

我正在构建一个移动应用程序,我希望保存数据应该在多个设备上仅供登录用户使用。

例如,如果用户登录到移动应用程序,只有他的记录(数据)应该被同步(离线可用)可能使用用户唯一 ID。

出于安全原因,我不希望表行中的所有记录都同步,因为其他用户记录也会在那里。

我已经阅读了有关在 sqlite-sync 中使用过滤器的信息,但我没有看到任何可以阻止用户操作过滤器并同步其他用户记录的东西。

仅以安全方式(使用经过身份验证的用户 ID)同步用户记录的最佳方法是什么?

标签: mysqlsqlitesynchronization

解决方案


为您的订阅者 ID 使用难以猜测的随机文本字符串。Base64 编码的CHAR(10)字符串可以携带 50 位随机性。这很难猜。

当用户进行身份验证(登录)时,将subscriberId 传递给您的移动应用程序。

当您创建一个新的用户帐户时,使用一个高质量的随机数生成器让她成为一个新的subscriberId。

不允许通过用户序列号从您的移动应用程序中查找数据,而只能通过subscriberId。

如果您的服务器收到对不存在的subscriberId 的请求,则表明有人试图猜测有效值。断开那个人。


推荐阅读