常见Web攻击类型

2020-03-27

跨站脚本攻击 XSS

Cross Site Scripting

在页面中插入恶意脚本,当用户浏览页面时,脚本会自动执行,实现对网站的篡改。

  • 反射型
    将攻击代码放在url中,用户点击链接后,服务器将代码从url中取出,拼接在html中返回给浏览器,浏览器解析并执行返回的恶意代码。整个过程像一次反射
  • 存储型
    将恶意代码存储到服务器中,只要用户浏览包含此恶意代码的页面,就会执行。
  • DOM型
    通过恶意脚本修改页面的 DOM 结构

防范措施

  • CSP 内容安全策略
    浏览器内置的一种防范XSS的机制。允许开发者创建一些规则,管理网站允许加载的内容,使扩展程序更加安全。

  • 输入检查
    对用户的任何输入都要进行检查、过滤、转义,将<script>作为纯文本输出,而不是执行js。


跨站请求伪造 CSRF

Cross Site Request Forgery

攻击者盗用用户身份发送恶意请求,欺骗用户的浏览器去访问一个用户曾经认证过的网站,并执行恶意操作(如转账)。由于浏览器曾认证过该网站,携带了用户cookie,所以请求会被接收。这是利用网站本身的漏洞

防范措施

  • 验证码
    确保每一次请求用户都是知情的,是最简洁而有效的方法。

  • token验证
    为http请求增添攻击者无法伪造的东西,比如token。客户端首次登陆成功后,会收到一个服务端签发的token,客户端将其存储起来,之后每次向服务端请求资源时都带着这个token。服务端收到请求后,验证token是否正确,正确则返回请求的数据,否则就视其为攻击者 拒绝这个请求。
    可以把token隐藏在请求的header中。

  • Referer验证
    请求的header中有一个referer字段,指页面请求来源。
    通过设置这个字段,使服务器只响应本站的请求;如果不是,就拦截。


分布式拒绝服务 DDOS

Distributed Denial of Service Attack

利用大量分布式服务器(僵尸网络)对目标发起大量请求,耗尽服务器资源,使其无法响应正常访问,造成网站下线。

  • 资源消耗型攻击
    通过大量请求消耗正常的带宽和协议栈处理资源的能力,使服务器过载并崩溃。
  • 服务消耗型攻击
    让服务端始终处理高消耗型业务的忙碌状态,进而无法对正常业务进行响应。

防范措施

  • 备份网站
    正式服务器一旦崩溃,可以切换到备份网站,通过临时主页展示信息。

  • 请求拦截
    拦截恶意请求的IP段,可以架设硬件防火墙,也可以在服务端过滤请求。

  • 带宽扩容
    让网站在短时间内急速扩容,顶住大流量的需求
    1)云服务商的防护产品,用冗余带宽来消化DDOS攻击。
    2)CDN缓存,将网站静态资源分发到多个服务器,用户就近访问 提高速度。

Sql 注入

将恶意SQL语句插入到Web表单递交、输入域名或页面请求的查询字符串,欺骗服务器执行恶意SQL命令。

防范措施

  • 避免将用户输入直接放入SQL语句中,最好使用参数化查询
  • 限制数据库权限和特权,将数据库用户的功能设置为最低要求