CSRF、XSS、Sql攻击以及防范措施

Csrf攻击

  1. 什么是Csrf攻击?

CSRF攻击,全程Cross Site Request Forgery(跨站请求伪造),攻击者通过跨站请求,以合法的⽤户身份进⾏⾮法操作(如转账或发帖等)。CSRF的原理是利⽤浏览器的Cookie或服务器的Session,盗取⽤户身份,从⽽进⾏操作。

  1. CSRF漏洞产⽣的原因

CSRF漏洞产⽣的原因是服务器端没有对请求的发起源进⾏合理的检验,不加分析地认为请求者⼀定是正常的⽤户,响应请求给⾮法分⼦。

  1. 防范

CSRF 攻击是⼀种请求伪造的攻击⽅式,它利⽤的是服务器不能识别⽤户的类型从⽽盗取⽤户的信息来攻击。因此要防御该种攻击,因为从服务器端着⼿,增强服务器的识别能⼒,设计良好的防御机制。
主要有以下⼏种⽅式:
① 请求头中的Referer验证:HTTP的头部有⼀个Referer信息的字段,它记录着该次HTTP请求的来源地址(即它从哪⾥来的),既然CSRF攻击是伪造请求是从服务器发送过来的,那么我们就禁⽌跨域访问,在服务器端增加验证,过滤掉那些不是从本服务器发出的请求,这样可以在⼀定程度上避免CSRF攻击。 但是这也有缺点,⽐如如果是从搜索引擎所搜结果调整过来,请求也会被认为是跨域请求。
②请求令牌验证(token验证):token验证是⼀种⽐较⼴泛使⽤的防⽌CSRF攻击的⼿段,当⽤户通过正常渠道访问服务器时,服务器会⽣成⼀个随机的字符串保存在session中,并作为令牌(token)返回给客户端,以隐藏的形式保存在客户端中,客户端每次请求都会带着这个token,服务器根据该token判断该请求是否合法

Xss攻击

  1. 什么是xss攻击?

XSS全称cross-site scripting(跨站点脚本),是当前 web 应⽤中最危险和最普遍的漏洞之⼀。攻击者向⽹⻚中注⼊恶意脚本,当⽤户浏览⽹⻚时,脚本就会执⾏,进⽽影响⽤户,⽐如关不完的⽹站、盗取⽤户的 cookie 信息从⽽伪装成⽤户去操作,携带⽊⻢等等。

  1. xss攻击分类

①反射型XSS(⾮持久性跨站攻击):利⽤⽹站某些⻚⾯会直接输出请求参数的特性,通过在url的请求参数包含恶意脚本,诱使⽤户点击嵌⼊恶意脚本的url链接执⾏恶意脚本以达到攻击的⽬的。⽬前有很多攻击者利⽤论坛、微博发布含有恶意脚本的URL就属于这种⽅式
②存储型XSS(持久性跨站攻击):通过表单输⼊(⽐如发布⽂章、回复评论等功能中)插⼊⼀些恶意脚本,并且提交到被攻击⽹站的服务器数据库中。当⽤户浏览指定⽹⻚时,恶意脚本从数据库
中被加载到⻚⾯执⾏,QQ邮箱的早期版本就曾经被利⽤作为持久型跨站脚本攻击的平台。
③DOM Based XSS(基于 dom 的跨站点脚本攻击):通过前⾯两种类型的⽅式,注⼊的脚本是通过改变 DOM 来进⾏攻击的。采⽤该种⽅式有⼀个好处就是从源代码中不易被发现。

  1. 防范

①消毒(对危险字符进⾏转义):对数据进⾏转义,⽐如<转义成<,这样<script>xxx</script>脚本就运⾏不了了。录⼊数据设置⽩名单,⽐如javaWeb项⽬,设置过滤器过滤特殊字符。前端⻚⾯限制⽤户输⼊数据类型,⽐如⽤户输⼊完年龄后验证输⼊内容只能是数字。过滤JS事件的标签,⽐如onclick、load等
②HttpOnly(防范XSS攻击者窃取Cookie数据):将重要的cookie标记为http only, 这样的话Javascript 中的document.cookie语句就不能获取到cookie了

Sql攻击

  1. 什么是sql攻击?

SQL注⼊,顾名思义就是通过注⼊SQL命令来进⾏攻击,更确切地说攻击者把SQL命令插⼊到web表单或请求参数的查询字符串⾥⾯提交给服务器,从⽽让服务器执⾏执⾏的该SQL。

  1. sql攻击产生的原因?

既然SQL注⼊是通过让服务器执⾏了恶意的SQL命令从⽽进⾏攻击的,那么主要问题就出在于服务器是如何⽣成 SQL语句的。绝⼤多数拥有SQL注⼊漏洞的Web系统,在⽣成SQL语句的时候,采⽤的是拼接字符串的⽅式,并且没有对要组装成SQL语句的参数进⾏检验和过滤。

  1. 防范

SQL注⼊攻击的防护与xss攻击的有点类似,过滤特殊操作字符来避免⼤部分的注⼊攻击。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值