Console 面板是验证 HTML 相关漏洞(如 XSS、DOM 重定向等)的关键入口,可实时检测 innerHTML 污染、HttpOnly Cookie 缺失、localStorage 明文凭证、window 调试接口等风险,但不扫描不告警,需结合业务逻辑判断可利用性。

不能靠 Console 面板直接“发现漏洞”,但它是验证漏洞是否存在、确认利用条件是否满足的关键入口。 它不扫描也不告警,只反馈你输入的代码执行结果和页面当前真实状态——而绝大多数 HTML 相关漏洞(如 XSS、DOM-based 重定向、HTML 注入、敏感信息残留)都依赖对 DOM 或全局对象的误操作,Console 是最轻量、最即时的验证现场。
console.log() 输出内容被污染,说明存在 DOM XSS 风险
当你在 Console 中执行 console.log(document.body.innerHTML),如果看到类似 <script>alert(1)</script> 这样的原始标签字符串(未被转义、未被移除),且该内容来自用户可控输入(比如 URL 参数、localStorage、表单提交值),就表明 HTML 插入点未做输出编码或过滤。常见场景包括:
- 用
element.innerHTML = location.hash.slice(1)渲染 URL 锚点内容 - 从
localStorage.getItem('userBio')读取后直接写入div.innerHTML - 服务端返回 JSON 后,前端用
JSON.parse()+.innerHTML拼接渲染
此时应立刻检查对应 JS 逻辑,替换为 textContent 或使用 DOMPurify.sanitize();不要依赖后端“已过滤”——前端二次解析仍可能触发。
document.cookie 可直接读取,暴露未设 HttpOnly 的敏感 Cookie
在 Console 中输入 document.cookie,回车。若返回包含 sessionid=abc123、auth_token=... 等非 __Host- 前缀的键值对,且没有 HttpOnly 标志(Network → Response Headers 中查不到 Set-Cookie: ... HttpOnly),说明该 Cookie 可被任意脚本读取——XSS 成功后即可外泄。
立即学习“前端免费学习笔记(深入)”;
这不是“漏洞代码”,而是配置缺陷。修复必须由后端设置 HttpOnly(及 Secure、SameSite),前端无法补救。但 Console 是唯一能快速确认它是否裸奔的地方。
localStorage/sessionStorage 存了不该存的明文凭证
执行 localStorage 或 sessionStorage,看控制台打印的对象里有没有 token、jwt、password、api_key 等字段。只要存在,且值是可解码的 JWT 或 Base64 字符串,就构成严重风险:任何 XSS 都能直接盗取。
更隐蔽的是“伪装成配置”的敏感数据,比如:
localStorage.setItem('app_config', '{"api_base": "https://admin.example.com", "debug": true}')- 其中
api_base若指向管理后台,配合 CORS 配置不当,可能被用于越权请求
这类数据不会报错,但会扩大攻击面。清理原则:前端绝不存储长期有效的身份凭证;临时 token 应随 session 生命周期销毁,不用 localStorage 持久化。
console.dir(window) 暴露挂载的调试函数或未清理的开发接口
执行 console.dir(window),展开查看是否有 debug、testApi、dumpState、_devTools 等明显非生产环境该存在的属性。这些常是开发阶段遗留的全局函数,可能:
- 直接返回
localStorage全量内容 - 调用内部 API 绕过权限校验
- 暴露加密密钥或算法细节(如
window.CRYPTO_KEY)
它们不会出现在源码里(常被 Webpack DefinePlugin 注入),但会在运行时挂载到 window。上线前必须确保构建流程移除所有 process.env.NODE_ENV !== 'production' 分支里的挂载逻辑——否则 Console 就是攻击者的控制台。
真正难排查的不是“有没有漏洞”,而是“漏洞是否可利用”。比如一个看似危险的 innerHTML 赋值,若其输入始终来自静态 JSON 文件且无用户交互,实际不可控;而一个不起眼的 location.search 解析,若没做正则白名单,可能成为 XSS 入口。Console 不提供答案,只给你一把钥匙——开哪扇门,得看你对业务逻辑的理解深度。



















