平台更新公告
半个月前在开发者收到苹果警告后,我们提出了解决方案,包括三点:
- 强制脚本下发必须使用自定义 RSA 私钥加密。
- 禁止 SDK 接入
- 检查每个下发的脚本,禁止调用私有 API,禁止下发大量代码。
今天平台已经升级完成,SDK 已更新到 1.7 版本,已实现上述三点安全防护:
- 所有接入 SDK1.7 以上版本的 APP 必须使用自定义 RSA 密钥。
- 平台不支持 SDK 接入,只允许普通 App 接入。
- 平台已经实现补丁内容里的私有 API 调用审查,下发脚本时后台会进行扫描,若有调用私有 API,会出现提示并禁止下发。
平台升级后,所有接入 JSPatch 平台的 App 不会有任何安全风险,即使平台被攻破拖库,也无法向任何一个 App 下发恶意脚本,因为私钥只掌握在每一个开发者手上,平台本身无权下发脚本。同时私有 API 审查功能以及补丁大小限制可以确保补丁不会被滥用。
接入 SDK1.7 版本不会被 AppStore 机器扫描拒绝,欢迎大家接入使用,接入指引见文档。
FAQ
为什么 SDK1.7 版本不会被扫描拒绝?
我们对SDK做了混淆,避免被苹果扫描到直接拒绝。
我们并非有意对苹果审核进行欺骗,苹果拒绝此类热修复我们在文章和解决方案里分析过,从审核条款来说 JSPatch 和 React Native 是一样的,但苹果允许 React Native 而拒绝 JSPatch,主要是安全问题和滥用问题,所以一刀切全部通过机器扫描禁止接入。
目前 JSPatch 平台已经解决了安全和滥用的问题,接入 JSPatch 平台不会有任何安全隐患,同时也会负责审核避免滥用,让热修复完全只用于临时修复 bug,提高 App 质量同时没有不良隐患,解决了苹果的顾虑,符合 iOS 平台的利益。但因为目前还未能与苹果正式沟通,所以若不修改名字,仍然会命中机器扫描的关键字导致被拒绝,于是我们暂时简单地修改了类名以避免机器审查,后续若能与苹果沟通,希望能以更正规的方式接入。
建议大家不要自行混淆代码接入 JSPatch,而是接入平台,让热修复在一个安全和可控的环境下使用。
发补丁时提交的私钥有被截获的风险?
平台目前使用 https,可以避免传输过程中被截获,同时后续我们会提供本地使用私钥签名的功能,让私钥无需在网络间传输。
旧版本如何下发补丁?
对于线上接入了旧版本 SDK 的用户,若要针对旧版本下发补丁,请通过发布补丁界面的右上角 旧版本补丁下发
进行下发。
误判私有 API 调用导致无法下发脚本怎么办?
私有 API 审查目前可能会出现漏判或误判,我们还在不断完善中,这过程若出现问题请 联系我们 进行人工处理。
更多问题欢迎联系我们咨询。