如何查看网页里被星号处理的信息
网页上那些星号,何查号处比如手机号中间四位、看网邮箱里的页里一部分字符,本质上就是被星前端开发者在代码里做的一层“视觉遮挡”。它跟真正的信息加密、权限控制是何查号处两码事。你打开浏览器按F12,看网切到Elements面板,页里找到对应的被星HTML节点,大概率能看到完整内容就明晃晃地写在标签里。信息星号只是何查号处CSS或者JavaScript在渲染时替换了显示文本,原始数据早就随页面一起发到你电脑上了。看网
我上周帮朋友查一个二手交易平台的页里卖家联系方式。页面上手机号显示成“138****6721”,被星右键检查元素,信息那一行代码是<span class="phone">13812346721</span>,中间四位压根没藏,只是用伪元素或者文本替换盖住了。把class删掉,或者直接在Console里执行document.querySelector('.phone').innerText,完整号码立刻出来。整个过程不到十秒。
这种“伪隐藏”最常见于表单回显、订单详情、个人中心。开发者图省事,觉得用户看不到就行。但只要你懂一点DOM操作,它就跟没穿衣服一样。
有些页面稍微认真点,星号是后端返回时就替换好的。比如接口返回{ "phone": "138****6721"},那前端确实拿不到完整数据。这时候你翻Network面板,看XHR请求的响应体,如果里面就是带星号的,那没辙——数据在服务器那关就被砍了。但这种情况其实不多,因为很多业务场景需要前端做校验、格式化或者点击复制,后端往往会给完整值,让前端自己决定怎么显示。
还有一种情况是图片里的文字被星号遮挡。这属于另一种思路:把敏感信息做成图片,上面画几个星号。这种你查看元素没用,得用OCR。截图,丢进任何在线OCR工具,或者用手机自带的文字识别,几秒钟就还原。我试过一个政务网站的低保公示名单,身份证号被星号盖住,但整页是扫描件图片,OCR出来完整号码一个不差。
再往深一点,有些网站用JavaScript动态生成星号,比如phone.replace(/(\d{ 3})\d{ 4}(\d{ 4})/, '$1****$2')。你直接在Console里重新执行一遍原始字符串的拼接就行。或者更粗暴:在Sources面板里找到对应的JS文件,搜replace或者****,把那段逻辑注释掉,刷新页面,星号就没了。
但得说清楚,这些操作只对“前端隐藏”有效。如果网站把敏感信息放在后端,每次请求都只返回脱敏后的数据,那你从浏览器里翻不出完整版。比如银行APP的账单详情,接口返回的就是尾号1234,你抓包也抓不到全号。这时候硬要看,只能去翻数据库或者找客服——那又是另一回事了。
我自己的习惯是:看到星号先按F12,看Elements里是不是完整文本。是的话直接复制。不是的话切Network,刷新页面,找那个返回数据的接口,看Response里有没有漏网之鱼。都没有,就放弃。折腾半天不如直接问对方要。
另外提醒一句,查看自己账号里的脱敏信息没问题,但拿这些方法去爬别人手机号、身份证号,那就踩线了。技术本身中立,用在哪得自己掂量。