XSS:跨站脚本攻击
注入攻击的一种。攻击者利用应用程序的动态展示功能,在HTML页面中嵌入恶意代码。当用户浏览该页时,这些嵌入在html的恶意代码就会被执行,用户浏览器被攻击者控制
- 盗取用户cookie,伪造用户身份
- 控制用户浏览器
- 结合浏览器及其插件漏洞,下载病毒木马到浏览者的计算机运行
- 衍生URL跳转漏洞
- 官网挂钓鱼网站
- 蠕虫攻击
CSRF:跨站请求伪造
XSS 是实现 CSRF 的诸多途径中的一条,但绝对不是唯一的一条。一般习惯上把通过 XSS 来实现的 CSRF 称为 XSRF。
解决方案
-
在用户登录时,设置一个CSRF的随机token,同时种植在用户的cookie中,当用户浏览器关闭或者再次登录、退出时,清除token;
-
在表单中,生成一个隐藏域,它的值就是cookie中随机token
-
表单提交后,在web服务器端,判断表单中是token是否和用户cookie中的token一致,如果不一致或者为空,就判断为CSRF攻击。
严格意义上来说,CSRF 不能分类为注入攻击,因为 CSRF 的实现途径远远不止 XSS 注入这一条。通过 XSS 来实现 CSRF 易如反掌,但对于设计不佳的网站,一条正常的链接都能造成 CSRF。