OWASP TOP10系列之#TOP7# A7-Cross-Site Scripting (XSS)
前言
Cross-Site Scripting (XSS) 即跨站域脚本攻击,XSS 是 OWASP Top 10 中第二个最普遍的问题,在所有应用程序的大约三分之二中都存在。一、XSS是什么?
- 反射型 (Reflected )XSS:应用程序或 API 包括未验证和未转义的用户输入作为 HTML 输出的一部分。一次成功的攻击可以让攻击者在受害者的浏览器中执行任意 HTML 和 JavaScript。通常,用户需要与一些指向攻击者控制的页面的恶意链接进行交互,例如恶意水坑网站、广告或类似内容。
- 存储型(Stored )XSS:应用程序或 API 存储未经处理的用户输入,稍后由其他用户或管理员查看。存储型 XSS 通常被认为是高风险或严重风险。
- DOM XSS:JavaScript 框架、单页应用程序和将攻击者可控制的数据动态包含到页面的 API 容易受到 DOM XSS 的攻击。理想情况下,应用程序不会将攻击者可控制的数据发送到不安全的 JavaScript API。
典型的 XSS 攻击包括会话窃取、帐户接管、MFA 绕过、DOM 节点替换或篡改(例如木马登录面板)、针对用户浏览器的攻击(例如恶意软件下载、密钥记录)以及其他客户端攻击。
二、如何防御
防止 XSS 需要将不受信任的数据与浏览器内容分离。这可以通过以下方式实现:
- 使用通过设计自动逃避 XSS 的框架,例如最新的 Ruby on Rails、React JS。了解每个框架的 XSS 保护的局限性,并适当处理未涵盖的用例
- 根据 HTML 输出中的上下文(正文、属性、JavaScript、CSS 或 URL)转义不受信任的 HTTP 请求数据将解决反射型和存储型 XSS 漏洞
- 在客户端修改浏览器文档时应用上下文敏感的编码会对抗 DOM XSS,可以将类似的上下文敏感转义
总结
OWASP TOP10系列之#TOP7# A7-Cross-Site Scripting (XSS)简单介绍,仅供参考,欢迎指正~~