架构说明
MapSpoto 前端使用 Expo / React Native 构建,后端使用 Supabase 提供认证、数据库、存储和实时能力。
技术栈本身不是安全保证,但它们提供了成熟的认证、权限和数据库能力,使我们可以基于现成机制做更严格的访问控制。
数据库访问控制
MapSpoto 使用 PostgreSQL Row Level Security(RLS)限制数据访问。
这意味着普通客户端只能读取自己有权限查看的数据,不能通过正常接口随意访问其他用户的不公开数据。
我们不会在网页上直接贴大段 SQL 策略,但会持续检查和收紧数据库访问规则。
账号与密码安全
账号系统基于 Supabase Auth。
开发者无法看到你的明文密码,密码由认证系统负责安全存储和校验。
前端密钥使用原则
App 前端只使用受限的匿名访问密钥(Anon Key)连接后端。
高权限的服务端密钥不会放进前端代码或打包到 App 中。
安全检查方式
我们会使用第三方工具和平台能力检查常见安全问题,例如:
- Supabase Security Advisor:检查数据库、RLS 和存储访问配置。
- 依赖安全扫描:检查第三方依赖中的已知漏洞。
- 代码扫描工具:检查常见安全问题和错误配置。
- 密钥泄露检查:确认项目中没有误提交高权限密钥或敏感环境变量。
最近一次依赖安全检查结果(2026年5月5日,版本1.3.0)
我们已完成一轮前端依赖安全检查,并对本次发现的高风险和中风险依赖问题进行了修复和版本收紧。
当前结果为:Critical 0 / High 0 / Moderate 0 / Low 0。
当前 Yarn Audit 报告未发现依赖漏洞。
在依赖调整后,我们完成了安装、代码检查、自动化测试和 Expo Doctor 验证;Expo Doctor 剩余提示为 Expo SDK patch 版本建议升级,不属于本次安全修复引入的问题。
检查工具:Yarn Audit。原始报告可下载查看。
最近一次密钥泄露检查结果(2026年5月5日,版本1.3.0)
我们已使用 gitleaks 对当前受版本控制的源码文件进行了密钥泄露扫描。
当前结果为:0 findings。
本次扫描仅针对当前 Git 跟踪源码,不包含 Git 历史记录,也不包含本地构建生成文件。
检查工具:gitleaks。原始报告可下载查看。
最近一次代码安全扫描结果(2026年5月5日,版本1.3.0)
我们已使用 Semgrep 对当前受版本控制的前端源码进行了静态代码安全扫描。
当前结果为:0 findings。
本次扫描已完成重新检查,当前未发现安全命中,也未出现解析警告。
检查工具:Semgrep。原始报告可下载查看。
最近一次移动端安全检查结果(2026年5月5日,版本1.3.0)
我们已使用 MobSF 对 MapSpoto 的 iOS 和 Android 安装包进行了静态安全分析。
iOS 结果为:64/100(Low Risk),未发现 High 风险项。App Transport Security 和定位权限配置已完成复查。
Android 结果为:55/100(Medium Risk)。Android 最低支持版本已提升至 Android 10(API 29),签名检查正常。
复查后仍存在两项已评估的静态提示:Android WebView debugging 命中第三方库 react-native-webview 的静态代码;业务 WebView 已显式设置 webviewDebuggingEnabled={false},Release 构建未开启 android:debuggable,评估为静态误报/可接受风险。iOS Debug Symbols 仍提示主二进制及 Hermes framework 中存在部分符号信息,该项不涉及数据泄露或权限扩大,但可能提升逆向分析便利性,评估为可接受风险,后续继续优化构建链路。
检查工具:MobSF。原始报告可下载查看。
近期改进方向
- 收紧公开资料字段,减少不必要的个人信息公开展示。
- 清理公开存储访问过宽的问题,避免公开列出整个文件桶内容。
- 简化资料完整度规则,避免把联系方式等敏感信息作为完善资料的必要条件。
说明边界
我们会持续改进安全配置和产品逻辑,但不会宣称“绝对安全”。
安全是一个持续维护的过程。如果发现新的问题,我们会继续修复和收紧。
返回隐私政策