存储型XSS(Stored Cross-Site Scripting)是一种网络安全破绽,属于跨站脚本攻击(XSS)的一种形式,其核心特点是反面攻击者将反面脚本代码永久存储在目标网站或应用的服务器上(如数据库、评论区、用户资料等),当其他用户访问包含此反面代码的页面时,脚本会从服务器加载并自动执行,从而对用户或系统造成危害。
注入反面代码
攻击者在网站的可输入区域(如留言板、论坛帖子、用户昵称字段)提交包含反面脚本的内容,在评论区输入:<script>alert('你的账户已被攻击!');</script>
这段代码被提交后,若网站未做防护,脚本会被存储到服务器数据库中。
服务器存储反面内容
网站的服务器未对用户输入进行过滤或转义处理,直接将带有反面代码的内容保存到数据库。
用户触发反面脚本
当其他用户访问包含此内容的页面时(例如查看留言板),反面脚本会从服务器加载到用户的浏览器中并自动执行,攻击者的代码可能在用户不知情的情况下窃取Cookie、劫持会话或改动页面内容。
输入验证与过滤
输出编码
<
, >
, &
)进行转义处理。 使用安全框架与库
现代前端框架(React、Vue)默认会对动态内容进行转义,降低XSS风险。
定期安全测试
通过渗透测试、自动化扫描工具(如OWASP ZAP)检查破绽,及时修复问题。
2015年,某社交平台因未过滤用户昵称字段,导致攻击者在个人资料中植入反面脚本,当其他用户查看其主页时,脚本自动转发私密消息至攻击者服务器,造成大规模数据泄露。
引用说明 参考了OWASP(开放全球应用安全项目)发布的《XSS防护指南》及MDN Web文档中关于内容安全策略(CSP)的技术说明。