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

未输入正确密码的攻击者能否查看页面hidden属性隐藏的机密内容?

结论:你这个写法不管用哪种Blazor运行模式,未授权的用户都能轻松获取到你说的机密消息

风险分析:

  • 如果你用的是 Blazor WebAssembly(WASM)模式:所有前端代码包括硬编码的机密文本、密码校验逻辑都会被完整打包下载到用户本地浏览器,hidden属性仅会让元素在页面上不可见,用户只要打开浏览器开发者工具查看DOM结构,或者直接解析前端打包的静态资源,就能直接看到机密内容,甚至可以直接篡改前端代码强制把success变量设为true,完全绕过你的密码校验。
  • 如果你用的是 Blazor Server模式:虽然逻辑运行在服务端,但你只是通过hidden属性控制元素显隐,敏感内容还是会被服务端通过SignalR推送到客户端DOM树中,用户打开开发者工具一样可以直接查看到内容。

正确实现方案:

  1. 不要用hidden属性控制敏感内容的显隐,改用条件渲染,确保没有权限的时候,敏感内容根本不会被生成到DOM中:
@if (success == true)
{
    <div>
        A very secret message !
    </div>
}
  1. 如果是Blazor WebAssembly项目,绝对不要把敏感内容硬编码在前端代码中,所有机密信息必须存储在服务端,只有用户通过服务端的身份校验之后,再通过接口请求返回对应内容,前端仅做展示,不存储任何敏感数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:18:03