跨站脚本脚本攻击 XSS 是近年来很流行的一种网络攻击。本文会用通俗的方式带你了解它的攻击原理是怎样的。
原理
被攻击的网站往往满足两个特征
1、具备表单元素
2、网站有漏洞,即,可以往表单元素插入存在 js 脚本的 html 元素。
我打算结合流程图讲解存储型 xss 攻击。
1、黑客在一个博客网站注册并登录。
2、黑客在博客中写入了带有恶意 js 的 html,这段 js 脚本会把访问博客的用户的 cookie 发至黑客的服务器
3、黑客提交博客,网站存在安全隐患。
4、管理员登入,网站生成 session 记录了管理员的用户信息,管理员浏览器中存放 cookie,包含 sessionId
5、管理员查看黑客博客,网站运行黑客脚本,脚本将管理员的 cookie 发送至黑客服务器。
6、黑客从 cookie 中获取 sessionId,通过 sessionId 登录管理员账户。
我相信,如果你了解 cookie 和 session 的基本知识,结合图看懂这 6 步并不是很难。如果你不了解 cookie 和 session 的基本原理,我在这篇文章有比较详细的讲解。
Mike:【前端面试】用一个例子帮你理解 session 和 cookiezhuanlan.zhihu.com解决方案
1、输入过滤,把输入中的 <>{} 等等敏感字符过滤,替换,转义,让黑客的脚本无法注入进 html。
2、禁止加载外域的代码。
3、禁止未授权的脚本执行