You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何彻底隐藏用户名末尾3位(避免前端页面源码泄露)

解决方案:后端脱敏彻底隐藏用户名隐私位

你的核心问题是前端JS修改DOM无法掩盖原始HTML中的完整用户名,必须在服务器端渲染阶段就完成脱敏处理,这样输出到页面的内容从根源上就是隐藏后的结果,彻底避免隐私泄露。

直接在模板层处理(Smarty语法)

根据你使用的{foreach}模板语法,直接在渲染时对用户名进行脱敏:

场景1:隐藏末尾3位,格式如usern***

{foreach from=$last_user item=s}
    {$s.date}
    {if strlen($s.username) > 3}
        {$s.username|substr:0:-3}***
    {else}
        <!-- 用户名长度不足3位时的兜底处理,可根据需求调整 -->
        ***
    {/if}
{/foreach}

场景2:隐藏开头3位,格式如***name

{foreach from=$last_user item=s}
    {$s.date}
    {if strlen($s.username) > 3}
        ***{$s.username|substr:3}
    {else}
        ***
    {/if}
{/foreach}

可选:在后端业务逻辑层处理(以PHP为例)

如果希望模板更简洁,可以在获取$last_user数据后先处理用户名,再传递给模板:

foreach ($last_user as &$user) {
    $username = $user['username'];
    if (strlen($username) > 3) {
        // 隐藏末尾3位
        $user['username'] = substr($username, 0, -3) . '***';
        // 若要隐藏开头3位,替换为:$user['username'] = '***' . substr($username, 3);
    } else {
        $user['username'] = '***';
    }
}
unset($user); // 释放引用,避免后续变量污染

之后模板中直接输出{$s.username}即可。

为什么前端JS方案不可行?

JS修改的是浏览器渲染后的DOM内容,但服务器返回的原始HTML(右键查看页面源码、网络请求响应中)仍然包含完整用户名,任何懂技术的用户都能轻松获取到,完全无法满足隐私安全要求。

内容的提问来源于stack exchange,提问作者Hossein Jafari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 08:15:38