跨站脚本攻击 (Cross-Site Scripting,XSS) 是一种常见的安全漏洞,它允许攻击者将恶意JS代码注入到网页中,使其在用户的浏览器中执行。XSS 攻击的目标是窃取用户的信息、会话令牌或操纵用户界面。

XSS 攻击分为三种类型

1.存储型 XSS (持久型) :

攻击者将恶意代码存储在服务器上,当其他用户访问包含恶意代码的页面时,浏览器请求数据,脚本从服务器上传回并执行。
2.反射型 XSS (非持久型) :

攻击者将恶意代码作为参数发送给服务器,服务器将其反射到页面中,如果用户点击恶意链接,浏览器请求数据,脚本从服务器上传回并执行。
3.DOM型XSS :

攻击发生在客户端,攻击者通过修改页面的 DOM 结构来触发执行恶意代码窃取用户敏感信息,

如何避免 XSS 攻击

1.输入验证和过滤: 对用户输入的数据进行验证只允许预期的数据类型,使用白名单过滤输入中的特殊字符和标签
2.输出编码: 在将用户输入展示到页面上时,使用适当的编码来转义特殊字符,如<>''等。
3.使用 CSP (Content Security Policy) : CSP 是种设置浏览器策略的机制,限制页面加载的资源,防止注入恶意脚本
4.Cookie 安全: 在设置 Cookie 时,使用 Httponly标志,防止JavaScript 访问敏感 Cookie
5.使用框架的防御机制: 许多 Web 开发框架都提供了内置的安全机制,如 React的JSX、Angular的模板语法,能够自动防御 XSS 攻击