SQL注入
---
危害:
- 非法读取、篡改、添加、删除数据库中的数据;
- 盗取用户的各类敏感信息,获取利益;
- 通过修改数据库来修改网页上的内容等。
原理:大部分关系型数据库都是基于SQL语法,而程序使用了用户输入的数据拼接组成sql语句,数据库执行之后产生了语气之外的效果。
(举例说明)
预防方法:
- 过滤用户输入的数据并进行检验
- 使用数据库的预编译(prepare)和参数绑定功能(举例说明)。
XSS跨站脚本攻击
---
危害:
- 窃取用户的隐私信息
- 控制用户的动作
原理: 攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
预防方法:
- 对用户的输入过滤并校验
- 用户输入的数据显示在网页时,将特殊字符转义。
CSRF跨站请求伪造
---
危害:伪造用户请求,在用户不知情的情况下控制用户的动作。
原理: 用户访问并登陆正常网站A后,打开了恶意网站B,由B通过浏览器发出请求到A站,此时会携带A站的cookie等信息,A的服务器并不知道请求是B伪造的。
预防方法:
- 验证http请求头的Referer
- 用户输入数据需要使用post方法,并分配一个一次性的token用于验证。
短信验证码
---
危害:
- 消耗公司的短信资源(浪费钱)
- 并发发送短信,影响正常用户的使用。
原理: 现在为了用户体验,很多公司的短信验证取消了图片验证码等人机校验功能,给攻击者造成了可乘之机。攻击者可以使用多个代理,构造多个手机号,避开后台的ip和手机号发送次数限制。
预防: 增加人机身份校验(最简单的是图形验证码)。
网友评论