需求单上就写了一行:加个批量导出,运营要看数据。
估时两小时。一个 controller,一个 service,查出来拼成 csv 丢给前端。上线后运营用着很顺手,半年没人再提。
麻烦出在一年后。有人把导出的文件带了出去,公司报了案。研发被问到的头一个问题不是代码怎么写,是这接口有没有行数上限、有没有留操作记录、谁批的。
听到合规两个字,写代码的人本能反应是"那是法务的事"。可责任在需求到上线的那几个节点上就分配完了,当时没人讲而已。
一、责任的来源,得先摆清楚
《数据安全法》2021年9月1日施行,是行政法,自己不设罪名。第五十二条那句"违反本法规定,构成犯罪的,依法追究刑事责任",是把它和刑法接起来的线。所以谈数据安全合规刑事责任,谈的不是这部法本身,而是你那个动作在刑法里对得上哪一条。
技术岗常碰上的主要是三条。第二百五十三条之一,侵犯公民个人信息,出售、提供、非法获取都在里面,不收钱的提供也算。第二百八十五条第二款,非法获取计算机信息系统数据,关键词是侵入以及其他技术手段。第二百八十六条,破坏计算机信息系统,删改数据、干扰运行落这里。
《数据安全法》第四十五条、第四十六条里都有"直接负责的主管人员和其他直接责任人员"这句话,意思是罚款不只落在公司头上。处罚决定书上写的是名字,不是工号。
二、分类分级不是一份 Excel
《数据安全法》第二十一条要求建立数据分类分级保护制度。不少公司把它做成一张表格交上去就算完事。在技术侧它是个字段级的问题:哪些字段是敏感个人信息,哪些可能划进重要数据,直接决定后面所有动作的门槛。
2017年侵犯公民个人信息案件的司法解释划了三档:行踪轨迹、通信内容、征信信息、财产信息,五十条;住宿信息、通信记录、健康生理信息、交易信息,五百条;其他个人信息,五千条。违法所得五千元也单独成一档。
三档之间差一百倍。同一张用户表导出一万行落在哪一档,全看你 select 了哪几个字段。
更要紧的是后面一句:在履行职责或者提供服务过程中获得的信息,标准减半。后台开发、运维、客服、风控天天在履职中碰数据,这句针对的就是内部人。
三、爬虫的边界比想象中窄
常见的判断是"公开数据抓了没事",这话只对一半。
抓公开页面、遵守 robots、频率不压垮对方,一般停在民事和行政层面。往下三种情况就变性质。
一是为了拿数据破了点什么。绕验证码、模拟登录、复用他人凭证、拿测试账号读生产库,都算第二百八十五条第二款的技术手段。
二是抓得太狠把对方搞挂了,高并发压垮服务,可能落到第二百八十六条的干扰系统正常运行。
三是抓到的东西本身。单条公开不等于聚合之后还是公开的,姓名加号码字段加常住地址,散着是零散信息,拼到一起就能识别到个人。判断的落点很朴素:你有没有为了拿数据,越过一道本来拦着你的东西。
四、日志是留给你自己的
《网络安全法》第二十一条要求留存网络日志不少于六个月。这条被抄进过无数份等保方案,落地质量差得远。
最常见的毛病是只有访问日志,没有操作日志。谁、什么时间、哪个账号、跑了什么语句、导出多少行、落到哪台机器,缺一项事后就说不清。另一个毛病是日志存在业务库,运维本人有删改权限,这种日志证明不了自己没被改过。
日志不是给检查的人看的,是给你自己用的。真到了要说明白"这次导出不是我发起的"那一步,能替你说话的只有它。
五、出境看的是机器在哪
出不出境跟有没有海外业务关系不大,跟服务器在哪有关。用境外 SaaS、把日志推给海外可观测平台、模型调用走境外接口,都算出境。
通道三条:安全评估、标准合同备案、个人信息保护认证。2024年3月《促进和规范数据跨境流动规定》放宽了小体量场景,一年内向境外提供不满十万人的非敏感个人信息可以免走;十万到一百万人之间,或者不满一万人的敏感个人信息,走标准合同或认证;超过一百万人,或敏感个人信息超过一万人,报安全评估。重要数据不看量级,一律评估。
六、对内的口子最容易松
对外的接口有人盯着,对内的查询工具往往没人管。客服后台按姓名模糊搜全库、运营报表直连从库,这两种在中小团队里太常见。
《个人信息保护法》第五十一条要求按处理目的确定操作权限并定期审计。翻成工程语言就三句:谁能查,一次能查多少,查完留没留痕。
能落地的动作不复杂:
- 生产库不给个人账号直连,取数走工单,写清字段和行数。
- 导出接口设阈值,单次超量、非工作时间、导出后外发,命中就得有人复核。
- 操作日志与访问日志分开存,写到执行者删不掉的地方。
- 测试环境用合成或脱敏样本,中间打星号不算脱敏。
- 离职交接清点本地导出文件、私人仓库、云盘副本。
- 需求里出现"绕一下""授权回头补",先留书面记录再动手。
七、翻到最后能把人区分开的是什么
坐在审判席那一侧看这类卷宗,翻到最后能把人区分开的不是技术水平,是有没有痕迹。
同一个导出接口,一个人有工单号、有审批、有行数记录,还在群里问过要不要脱敏;另一个人什么都拿不出来,只能说"我记得是运营让我加的"。走流程不等于一定没事,但什么都没有的时候,解释的余地少一半。
代码写得干净,不等于事情说得清楚。
作者韩宝玉,37年法院审判经历,曾任某省直属法院高级法官,现执业于北京百环律所深圳办案团队。
以上为一般性法律常识,不针对具体个案。