
1) 【一句话结论】
XSS漏洞源于Web应用对用户输入未做有效验证/转义,导致恶意脚本注入页面并执行;360通过输入过滤、输出过滤、内容安全策略(CSP)等机制检测防御,需结合输入处理与输出渲染环节防护。
2) 【原理/概念讲解】
老师口吻:先解释“跨站脚本攻击(XSS)”的本质——用户输入被当作代码执行。比如,当你在搜索框输入<script>alert('XSS')</script>,若应用未对输入做“清洗”(转义或过滤),直接将其输出到页面,其他用户访问时该脚本就会在他们的浏览器中执行。类比:把用户输入当成“食材”,应用直接“生吃”(未处理),导致“中毒”(脚本执行)。
3) 【对比与适用场景】
不同类型XSS的对比要点:
| 类型 | 定义 | 特性 | 检测/防御重点 |
| 反射型 | 用户输入被直接返回到响应中(临时性) | 无持久化,触发时需用户主动访问 | 输入过滤、输出转义 |
| 存储型 | 输入存储到数据库等持久化存储(如用户名、评论) | 持久化,多次触发 | 数据库输入过滤、存储后输出转义 |
| DOM型 | 脚本执行依赖DOM结构(如客户端脚本操作DOM) | 依赖客户端代码,与服务器响应无关 | 客户端代码审计、CSP |
4) 【示例】
反射型XSS示例:
search=...。<script>alert('Hello')</script>"<h1>搜索结果:${userInput}</h1>")。/search?search=<script>alert(1)</script>时,脚本执行。5) 【面试口播版答案】
“XSS漏洞的核心是用户输入被当作代码执行。比如,当你在搜索框输入恶意脚本,应用没转义直接输出到页面,别人访问时脚本就执行了。360的XSS过滤机制主要分三块:输入过滤(检查用户输入是否有危险字符,如<script>、on事件)、输出过滤(对输出到页面的内容转义,比如<转<)、内容安全策略(CSP,通过script-src等指令限制脚本来源)。检测的话,用工具扫描输入点(比如找没有过滤的表单字段);防御就是严格验证输入、转义输出、用CSP限制脚本执行。这样就能有效防XSS。”
6) 【追问清单】
<script>、on事件),拦截危险输入;输出过滤对输出内容进行HTML转义。script-src等指令限制脚本来源,防止执行非授权脚本。局限性是只能限制加载,不能完全阻止执行,需配合其他措施。7) 【常见坑/雷区】