设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 运营中心 > 建站资源 > 策划 > 正文

一篇补齐你的Web安全知识死角(2)

发布时间:2019-05-22 06:46 所属栏目:20 来源:李伟山
导读:在form元素中添加 form:formhtmlEscape=true或 form:inputpath=someFormFieldhtmlEscape=true/ 03.CSRF CSRF(Cross-Site Request Forgery),中文名称:跨站请求伪造攻击那么 CSRF 到底能够干嘛呢?你可以这样简单的

在form元素中添加

  1. <form:form htmlEscape=“true”>或 
  2. <form:input path=”someFormField” htmlEscape=”true” /> 

03.CSRF

CSRF(Cross-Site Request Forgery),中文名称:跨站请求伪造攻击那么 CSRF 到底能够干嘛呢?你可以这样简单的理解:攻击者可以盗用你的登陆信息,以你的身份模拟发送各种请求。攻击者只要借助少许的社会工程学的诡计,例如通过 QQ 等聊天软件发送的链接(有些还伪装成短域名,用户无法分辨),攻击者就能迫使 Web 应用的用户去执行攻击者预设的操作。例如,当用户登录网络银行去查看其存款余额,在他没有退出时,就点击了一个 QQ 好友发来的链接,那么该用户银行帐户中的资金就有可能被转移到攻击者指定的帐户中。

所以遇到 CSRF 攻击时,将对终端用户的数据和操作指令构成严重的威胁。当受攻击的终端用户具有管理员帐户的时候,CSRF 攻击将危及整个 Web 应用程序。

CSRF流程

角色

  • 正常浏览网页的用户:User
  • 正规的但是具有漏洞的网站:WebA
  • 利用CSRF进行攻击的网站:WebB

流程

1.用户登录、浏览并信任正规网站WebA,同时,WebA通过用户的验证并在用户的浏览器中产生Cookie。

一篇补齐你的Web安全知识死角

2.攻击者WebB通过在WebA中添加图片链接等方式诱导用户User访问网站WebB。

一篇补齐你的Web安全知识死角

3.在用户User被诱导访问WebB后,WebB会利用用户User的浏览器访问第三方网站WebA,并发出操作请求。

一篇补齐你的Web安全知识死角

4.用户User的浏览器根据WebB的要求,带着步骤一中产生的Cookie访问WebA。

一篇补齐你的Web安全知识死角

5.网站WebA接收到用户浏览器的请求,WebA无法分辨请求由何处发出,由于浏览器访问时带上用户的Cookie,因此WebA会响应浏览器的请求,如此一来,攻击网站WebB就达到了模拟用户操作的目的。

一篇补齐你的Web安全知识死角

CSRF攻击防护

CSRF 的防御可以从服务端和客户端两方面着手,防御效果是从服务端着手效果比较好,现在一般的 CSRF 防御也都在服务端进行。服务端的预防 CSRF 攻击的方式方法有多种,但思路上都是差不多的,主要从以下两个方面入手:

  • 正确使用 GET,POST 请求和 cookie
  • 在非 GET 请求中增加 token

一般而言,普通的 Web 应用都是以 GET、POST 请求为主,还有一种请求是 cookie 方式。我们一般都是按照如下规则设计应用的请求:

  • GET 请求常用在查看,列举,展示等不需要改变资源属性的时候(数据库 query 查询的时候)
  • POST 请求常用在 From 表单提交,改变一个资源的属性或者做其他一些事情的时候(数据库有 insert、update、delete 的时候)

当正确的使用了 GET 和 POST 请求之后,剩下的就是在非 GET 方式的请求中增加随机数,这个大概有三种方式来进行:

  • 为每个用户生成一个唯一的 cookie token,所有表单都包含同一个伪随机值,这种方案最简单,因为攻击者不能获得第三方的 cookie(理论上),所以表单中的数据也就构造失败,但是由于用户的 cookie 很容易由于网站的 XSS 漏洞而被盗取,所以这个方案必须要在没有 XSS 的情况下才安全。
  • 每个 POST 请求使用验证码,这个方案算是比较完美的,但是需要用户多次输入验证码,用户体验比较差,所以不适合在业务中大量运用。
  • 渲染表单的时候,为每一个表单包含一个 csrfToken,提交表单的时候,带上 csrfToken,然后在后端做 csrfToken 验证。

CSRF 的防御可以根据应用场景的不同自行选择。CSRF 的防御工作确实会在正常业务逻辑的基础上带来很多额外的开发量,但是这种工作量是值得的,毕竟用户隐私以及财产安全是产品最基础的根本。

04.DDos

DDos又叫分布式拒绝服务,全称Distributed Denial of Service,利用DDos造成的攻击称为拒绝服务攻击,其原理就是利用大量的请求造成资源过载,导致服务不可用。

DDos攻击从层次上可分为网络层攻击与应用层攻击,从攻击手法上可分为快型流量攻击与慢型流量攻击,但其原理都是造成资源过载,导致服务不可用。

一篇补齐你的Web安全知识死角

网络层DDos攻击

网络层DDos攻击包括SYN flood、UDP flood、ICMP flood等。

  • SYN flood攻击:SYN flood攻击主要利用了TCP三次握手过程中的bug,我们知道TCP三次握手过程是要建立连接的双方发送SYN,SYN+ACK,ACK数据包,而当攻击方随意构造源ip去发送SYN包时,服务器返回的SYN+ACK就不能得到应答(因为ip是随意构造的),此时服务器就会尝试重新发送,并且会有至少30s的等待时间,导致资源饱和服务不可用,此攻击属于慢型dos攻击。
  • UDP flood攻击:由于udp是一种无连接的协议,因此攻击者可以伪造大量的源IP地址去发送udp包,此种攻击属于大流量攻击。正常应用情况下,UDP包双向流量会基本相等,因此在消耗对方资源的时候也在消耗自己的资源。
  • ICMP flood攻击:此攻击属于大流量攻击,其原理就是不断发送不正常的ICMP包(所谓不正常就是ICMP包内容很大),导致目标带宽被占用,但其本身资源也会被消耗。并且目前很多服务器都是禁ping的(在防火墙在可以屏蔽icmp包),因此这种方式已经落伍。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读