参考:
1 跨站脚本攻击(XSS攻击)
XSS(Cross Site Script):攻击者向有XSS漏洞中输入(传入)恶意的HTML或者JS代码,当其他用户浏览该网站时,这段代码就会自动执行,从而到达攻击的目的。如盗取用户Cookie、破坏页面结构,重定向到其他网站等。
XSS攻击分类
XSS攻击是常见的Web攻击,其重点是“跨站” 和 “客户端执行”。有人将XSS攻击分为三种,分别是:
-
Reflected XSS(基于反射的XSS攻击)
-
Stored XSS(基于存储的XSS攻击)
-
DOM-based or local XSS(基于DOM或本地的XSS攻击)
Reflected XSS(基于反射的XSS攻击)
主要依靠站点服务端返回脚本,在客户端触发执行从而发起Web攻击。
举例:
1、在搜索框搜索内容,填入“<script>alert('我要攻击了')</script>”, 点击搜索。
2、当前端页面没有对返回的数据进行过滤,直接显示在页面上,这时就会alert那个字符串出来。
3、如果将alert替换为恶意代码,获取用户cookie的地址,账号密码或者重定向到钓鱼网站等等。
安全措施:
1. 前端在显示服务端数据时候,不仅是标签内容需要过滤、转义,就连属性值也都可能需要。 2. 后端接收请求时,验证请求是否为攻击请求,攻击则屏蔽。 标签: <span><script>alert('handsome boy')</script></span> 转义 <span><script>alert('handsome boy')</script></span>
Stored XSS
基于存储的XSS攻击,是通过发表带有恶意跨域脚本的帖子/文章,从而把恶意脚本存储在服务器,每个访问该帖子/文章的人就会触发执行。
防范:
-
要是服务端要进行过滤,因为前端的校验可以被绕过。
-
服务端不校验时候,前端要以各种方式过滤里面可能的恶意脚本,例如script标签,将特殊字符转换成HTML编码。
DOM-based or local XSS
防范:使用HTTPS
2 跨站请求伪造(CSRF攻击)
防止SQL注入攻击-学习笔记