说说XSS三种类型和区别?

1 个回答

  • 黑羽
    人一旦不害怕失去,态度就会变得随意,随你意,你随意。
    XSS(跨站脚本攻击)主要分为三种类型,它们的原理、触发方式和利用场景有所不同: ## 1. 反射型(Reflected XSS) **原理** * 恶意脚本通过 **请求参数**(URL、表单提交等)直接注入到响应页面中,服务端没有对输入进行过滤。 * 攻击代码不存储在服务器,依赖用户点击带有恶意参数的链接触发。 **特点** * 一次性攻击,请求-响应即时生效。 * 需要诱导用户访问特制的 URL。 **示例** ```html http://example.com/search?q=<script>alert(1)</script> ``` ## 2. 存储型(Stored XSS) **原理** * 恶意脚本被**存储**在服务器(数据库、日志、评论等)中,后续其他用户访问相关页面时会执行。 * 危害范围大,可长期存在。 **特点** * 攻击持久化,影响所有访问该页面的用户。 * 常见于留言板、评论区、个人资料等功能。 **示例** 用户在评论框输入: ```html <script>alert('Hacked')</script> ``` 服务器存储后,任何访问该评论的用户都会执行脚本。 ## 3. 基于 DOM 的 XSS(DOM-Based XSS) **原理** * 不依赖服务器端注入,而是在浏览器端通过 **JavaScript 修改 DOM** 时插入恶意脚本。 * 攻击代码通常来自 `location.hash`、`document.URL`、`document.referrer` 等不安全数据源。 **特点** * 漏洞存在于前端代码逻辑中。 * 服务端可能完全不参与,过滤也无法阻止。 **示例** ```javascript // 有风险的前端代码 document.getElementById('msg').innerHTML = location.hash.substr(1); ``` 访问: ``` http://example.com/#<script>alert(1)</script> ``` 会直接执行脚本。 ## 主要区别对比 | 类型 | 触发方式 | 是否存储在服务器 | 主要危害 | | ----- | ------------- | -------- | --------------- | | 反射型 | 用户请求时立即返回并执行 | 否 | 即时攻击,需诱导点击 | | 存储型 | 数据先存储,后续访问触发 | 是 | 长期影响,多用户受害 | | DOM 型 | 前端 JS 处理不安全数据 | 否(前端漏洞) | 绕过服务器过滤,直接利用客户端 |
    发布于 2025-08-12 16:20 •IP属地 山西
    举报
    评论
    收藏