前端做假名化处理时,CSS样式会影响数据脱敏效果吗?
我们最近在做用户隐私保护,要求前端展示时对手机号、身份证等敏感字段做假名化(比如 138****1234)。我试过用 CSS 的 content + attr 来遮盖部分字符,但发现这样其实原始数据还在 DOM 里,是不是有泄露风险?
比如下面这段代码,虽然页面上看起来是脱敏的,但审查元素就能看到完整号码,这算合规吗?
.masked-phone::after {
content: attr(data-prefix) "****" attr(data-suffix);
}
.phone {
visibility: hidden;
}
简单暴力的解决方案:在后端处理数据时就直接替换成带星号的格式,比如用PHP的substr_replace:
这样输出到前端的就是已经脱敏的字符串,审查元素也看不到原始数据。如果非要保留原始数据用于某些功能,可以放data属性里,但得确保后端接口响应也不返回完整数据。
顺便吐槽下,现在隐私合规越来越严,这种前端自欺欺人的做法真不行,审计一抓一个准。