前两天朋友老张跟我吐槽,他们公司做了一个用户行为分析的小工具,刚上线没几天,就被客户投诉了。原因不是功能有问题,而是偷偷收集了用户的浏览记录和设备信息,没给用户选择权。这事儿最后闹到要赔钱整改,团队还得重新过一遍合规流程。
你以为的“正常功能”,可能是违法操作
很多开发者觉得,只要代码跑得通、功能实现了就行。但在今天,尤其是涉及用户数据的功能,光跑通还不够。比如你做个登录功能,顺手把用户的IP地址、手机型号、甚至剪贴板内容都存进数据库,想着以后“可能有用”——这一步就踩线了。
《个人信息保护法》早就规定,收集个人信息必须明确告知用户,并取得单独同意。不是你写个长长的隐私协议让人点“同意”就行,得让用户真正知道你在拿什么、干什么用。
开发中的常见“坑”
最常见的就是日志记录。为了排查问题,很多人习惯在日志里打满用户手机号、身份证号、甚至密码(明文!)。系统出问题时是方便查了,但一旦日志被泄露,责任全在你。
还有些人喜欢用第三方SDK,比如加个统计插件、推送服务,集成进去两行代码完事。可你有没有看过它的权限清单?有些SDK会悄悄读取通讯录、获取位置、监听后台活动。你用了它,等于把用户的数据交给了别人,而你是第一责任人。
代码层面怎么避雷?
最简单的做法:最小化收集。不需要的信息,干脆别碰。比如做个记账App,非要把用户头像上传到公网可访问的URL?没必要。
再比如处理用户数据时,加一层脱敏逻辑:
function maskPhone(phone) {
return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
}
// 使用示例
console.log(maskPhone('13812345678')); // 输出:138****5678
日志里一律禁止打印完整身份证、银行卡号。真要查问题,可以通过内部授权接口临时解密,而不是直接留痕。
上线前多问几句
别等到产品上线才想起合规。每次新增一个数据采集点,先问自己三个问题:
- 这个数据真的必要吗?
- 用户能不能自由关闭或删除?
- 如果数据丢了,我会被追责吗?
要是答不上来,赶紧停下来改。现在很多云服务商都提供了数据合规检查工具,比如阿里云的“数据安全中心”,能自动扫描数据库里的敏感字段,提醒你加密或脱敏。
技术没有原罪,但滥用就有代价。写代码的人,不只是实现需求,更得守住底线。毕竟,用户点的不是“同意”,是“信任”。