XSS、CSRF、SQL注入原因分析,危害,解决方案

liuyang000 2019-12-06

一、xss

名词解释:xss指的是攻击者利用用户提交的数据没有就行过滤和转义处理的缺点,进而添加一些代码到web界面中去。利用了系统对用户的信任

危害:盗取各种账号,网站挂马,非法转账等。

造成原因:过于信任客户端提交的数据。

解决办法:对客户端提交过来的数据进行过滤,转义,正则校验。

举例:

有个表单域:<input type=“text” name=“content” value=“这里是用户填写的留言”>

1、假若用户填写数据为:<script>alert(‘dog!‘)</script>(或者<script type="text/javascript" src="./xss.js"></script>)

2、提交后将会弹出一个dog警告窗口,接着将数据存入数据库

3、等到别的客户端请求这个留言的时候,将数据取出显示留言时将执行攻击代码,将会显示一个dog警告窗口。

二、csrf攻击

名词解释:csrf(伪造跨站请求)。攻击者通过夹持用户已经登录的web网站执行攻击操作。利用 了系统对浏览器的信任

csrf攻击流程:

1.客户端请求网站A并生成一个cookie凭证保存在浏览器中。

2.客户端访问网站B,网站B自动触发客户端请求网站A。通过B网站请求网站A时,带有合法的A网站的cookie凭证。

2.A网站若只验证cookie,执行操作,则攻击成功。

解决办法:1.使用验证码2.每一个表单都有他的唯一token令牌3.验证http referer(http请求的来源地址)

三、sql注入

名词解释:攻击者把sql代码添加到程序参数里面,服务端未对参数进行应有的过滤和校验,导致攻击的sql语句被当做参数执行。

危害:利用漏洞,执行一些危险的sql语句(获取数据机密,删除修改数据)。

解决方案:

1.在表单通过js绑定一些数据类型,在服务端对数据在进行一次过滤和类型转换。

2.连接数据库时,使用预编译语句。

相关推荐