请解释跨站脚本攻击(XSS)的含义,并阐述反射型、存储型以及 DOM 型这三种 XSS 类型之间的差异。
考察说明
考查对 XSS 攻击定义及其三种主要类型差异的掌握程度。
回答思路
- 【回答框架 1】XSS 即跨站脚本攻击,攻击者将恶意脚本注入网页,在用户浏览器中执行,从而窃取会话、篡改页面或劫持用户操作。
- 【回答框架 2】反射型 XSS:恶意脚本通过 URL 参数等输入被服务器反射回响应中,不持久存储,需要诱使用户点击恶意链接,一次性执行。
- 【回答框架 3】存储型 XSS:恶意脚本被存储在服务器(如数据库)中,用户正常访问页面时被加载执行,影响范围更广,危害更大,常在评论区、用户资料等位置出现。
- 【回答框架 4】DOM 型 XSS:恶意脚本通过修改页面 DOM 结构执行,不经过服务器,触发过程完全在客户端,常由前端代码将不可信数据写入 DOM 事件或属性导致。
- 【回答框架 5】三种类型的核心区别在于恶意脚本的来源、持久性及触发位置:反射型和存储型均需服务端,存储型持久,DOM 型纯客户端且利用前端代码漏洞。
- 【关键点 1】XSS 本质是客户端脚本注入漏洞,目标是浏览器。
- 【关键点 2】反射型不持久,需诱导点击链接;存储型持久,存储于服务器;DOM 型不经过服务器,直接操作 DOM。
- 【关键点 3】防御重点是输入校验与输出编码,DOM 型还需注意前端安全处理。
- 【易错点 1】区分反射型与 DOM 型时,常误以为 DOM 型只是反射型的一种,实际触发机制和位置不同。
- 【易错点 2】存储型 XSS 不一定只发生在传统的服务器存储,也可能由本地存储或缓存造成,需根据具体场景判断。
- 【易错点 3】认为所有 XSS 都必须经过服务器,忽略 DOM 型纯客户端攻击的可能性。