三道防线:内容安全、隐私保护与风控
小程序上线不是终点,能不能一直安稳地跑下去,靠的是安全与合规。它不是一句口号,而是三道具体的防线:内容别出违规、用户隐私别乱收、异常行为能拦住。任何一道塌了,轻则被平台打回,重则直接下架。
做安全合规要趁早。很多团队等被平台驳回、被用户投诉才去补,那时候改动往往牵一发动全身。在设计阶段就把这些想清楚,后面省心得多。
合规不是上线前的一道手续,而是贯穿产品全程的底线。
这三道防线里,内容安全管的是「用户发什么」,隐私合规管的是「你收什么」,风控管的是「用户怎么用」。分工不同,但都不能省。
- 内容安全用户发的文字图片先过机审再放行。
- 隐私保护只收必要信息,明确告知用途。
- 登录支付凭证和资金链路要做加密与校验。
- 风控识别薅羊毛、刷单等异常行为。
内容安全:先过机审再上人审
只要小程序允许用户发内容——评论、昵称、头像、UGC——就必须做内容安全。平台都提供了内容检测接口,发出去之前先过一道机审。
// 文本内容先检测,命中风险就拦下
wx.security.msgSecCheck({
content: userComment,
success(res) {
if (res.errCode !== 0) rejectComment();
}
});
| 内容类型 | 检测手段 |
|---|---|
| 文字评论 | 文本安全检测接口 |
| 用户头像/图片 | 图片安全检测接口 |
| 疑似违规 | 机审不过的转人工复核 |
机审不是万能的,边界情况总要靠人兜底。建议把机审置信度低的内容自动转人工,而不是直接放行。另外内容检测要在写入数据库之前做,别先存了再删,那时候可能已经被用户看到了。
隐私保护:该要的才要,该藏的要藏
隐私合规这几年越收越紧。原则就两条:能不要的权限就别申请,拿到的数据要按约定用。
- 只在真正用到时才申请授权,别一进来就全要。
- 隐私协议把收集了什么、用来干嘛讲清楚。
- 敏感数据别明文存本地,传输走加密。
还有个实操细节:用户拒绝某个授权后,不要反复弹,那样体验差也容易被平台判违规。把功能降级跑通就行——比如拒绝相册授权,就引导用户直接拍照上传。
登录与支付的安全
登录态和支付是钱和账号的关口,最容易被盯着。登录凭证别长期硬存,支付一定要走平台官方通道,自己私下收款既不安全也不合规。
// 登录凭证短期有效,用后即换,别明文落盘
wx.login({ success(res) { sendToServer(res.code); } });
凡是涉及钱的动作,尽量在服务端二次确认,别只信前端传过来的参数。
另一个常被忽略的点:前端传过来的金额、数量都不能直接信。一定要在服务端按商品实际价格重新算一遍,否则被人改包就亏大了。
风控:识别异常行为
做活动最容易引来薅羊毛和刷单。风控的思路是:给异常行为打标,对可疑操作加验证或限流。
- 同一个设备短时间大量领券,可疑。
- 新注册账号立刻大额操作,可疑。
- 可疑不直接封号,先加一步验证。
风控规则别写死在代码里,最好能在后台配置。这样发现新的作弊手法时,改配置就能上线,不用发版等审核。
常见的合规坑
| 坑 | 后果 |
|---|---|
| UGC 没过机审就放行 | 出违规内容被下架 |
| 一进页面就要全量授权 | 被平台驳回 |
| 自己私下收款 | 资金风险且违规 |
机审和人审之外,还要留个举报入口。用户主动举报的内容要优先处理,这既是体验也是合规要求。
安全合规检查清单
- 所有用户输入的内容先过机审。
- 权限按需申请,隐私协议写清楚。
- 支付走官方通道,服务端二次确认。
- 关键操作加风控校验,异常先限流。
- 定期自查,别等被驳回才补。
做完清单还要定期复盘:最近有没有被驳回、有没有新的合规要求。平台规则一直在更新,一次自查到位不代表以后都稳。
安全合规做在前面,小程序才能跑得久、睡得稳。