前端 web端常见的攻击有那几种类型
文章目录
dos攻击和ddos攻击
我们访问网站的时候 有的时候会碰到网站无法打开 服务器瘫痪 那么(D)Dos攻击让服务器瘫痪原理是什么呢? 黑客又如何实现DDos攻击的呢
要想知道什么是ddos攻击 我们需要先知道 我们是如何上网的呢?
- 终端给服务器发送 请求
- 服务器接收请求 处理请求 并把请求的结果返回
- 在让客户机的终端去解码 渲染这些信息
dos攻击的原理
- dos和ddos攻击的原理就是不停的给服务器发送请求
- 让服务器不能正常处理其他终端的请求
- 达到让服务器不能给其他人服务的目的
- 这就是dos攻击
因为dos攻击的终端只有一个 很容易被服务器认出 再去封禁
于是就出现了ddos攻击
ddos攻击
ddos攻击 发送攻击请求的终端不再是一个 少则几十 几百个 多着上千上万个 当他们不断给服务器发送请求时 服务器就不那么容易的处理过来了
dos攻击的类型
dos攻击大概分为两种类型
- 第一种 也是最常用的一种 以自己的流量去消耗服务器的流量 对等的消耗
- 第二种 分片攻击 这种攻击并不是以我的流量去消耗服务器的流量 发送一些小的数据包里面包含恶意代码 占用服务器的内存
CSRF攻击
CSRF(跨站请求伪造),是一种对网站的恶意利用。
攻击者盗用合法用户的身份 对于服务器来说又是合法的 完成攻击者所期望的效果
完成一次CSRF攻击 受害这需要完成以下两个步骤
- 登录受信任网站A 并在本地生成token
- 在不登出网站A的情况下访问危险网站B
CSRF防御
目前防御CSRF攻击有三种策略:
(1)验证 HTTP Referer 字段
HTTP的referer字段保存了http的来源地址,受访网站可以验证这个地址是否合法,如果不合法,则有可能为CSRF攻击,拒绝该请求。但这种方法不是万无一失的,referer的值是由浏览器提供的,我们并不能保证浏览器没有安全漏洞,目前已有一些方法可以篡改referer值,而且有些用户为了保护自己的隐私可以设置浏览器在发送请求时不再提供referer值。
(2)在请求地址中添加token并验证
CSRF利用cookie来进行攻击,那么我们可以在请求中添加不可伪造的信息并不存在与cookie中,可以在请求中以参数形式随机产生一个token,并在服务器建立一个拦截器验证这个token。
(3)在HTTP头中自定义属性并验证
解决了上种方法在请求中加入 token 的不便,同时,通过 XMLHttpRequest 请求的地址不会被记录到浏览器的地址栏,也不用担心 token 会透过 Referer 泄露到其他网站中去。
XXS攻击
xxs攻击又称为脚本攻击 攻击者利用漏洞 恶意的将代码植入到页面中 这样当别人在访问的时候也执行了嵌入该页面的代码
可简单的分为两类
- 反射性xss 作为url参数提交给服务器
- 存储型xss 把恶意的脚本数据存入数据库 当其他用户读取数据的时候 执行这段脚本
XXS防御
- 对用户输入的内容做编码 转义用户输入的是数据而不是代码
- 校验 过滤 对特殊字段过滤 如script 设置输入域的匹配规则
- 保护cookie,对重要的cookie设置httpOnly,防止客服端通过document.cookie获取cookie。
SQL注入
简单来说 就是在提交表单的时候插入SQL命令 最终是web服务器执行恶意SQL命令的过程
SQL注入的防御
- 不要使用动态SQL 避免将用户提交的数据直接放入sql语句中
- 限制数据库权限和特权 将数据库用户的功能设置为最低要求
- 避免直接向用户显示数据库错误信息
- 在发布之前 用专业的sql注入检测工具进行检测 及时发现和修补
DNS劫持
域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的IP地址从而实现用户无法访问目标网站的目的或者蓄意或恶意要求用户访问指定IP地址(网站)的目的。
通过一个例子说一下我的理解,当我们上网的时候如果通过域名(如www.taobao.com)访问一个网站,流程应该是输入网址,浏览器缓存中查找www.taobao.com的ip,如果你刚刚访问过,则直接返回ip,如果没找到,则先进入本机的hosts文件找有没有这个域名,有的话返回对于ip,没有的话,进入本地DNS解析器中查找缓存,找不到的情况下则需要网络中的服务器去查找,首先查找本地DNS配置的服务器,如我们熟悉的谷歌的8.8.8.8和电信的114.114.114.114这两个(mac上的配置地址文件 /etc/resolv.conf),都是在我们机器上事先配置好的,访问这个服务器如果在其缓存中查到对于的ip则直接访问给我们,同时本机的DNS解析器缓存该记录,如果服务器也没有找到这个域名的信息,这时候要看我们本地的配置是否需要转发,如果需要就需要本地DNS服务器一级一级向上查询,知道返回域名信息,不是转发的情况下,本地DNS服务器开始与根DNS服务器交互,当然根DNS服务器并没有我们想要的ip信息,由于全球都需要依赖它,它只会返回一些基本信息,在此时它先返回给我们.com这个顶级域名管理服务器的ip,本地DNS服务器拿到这个ip再向它寻找,当然.com的域名他也不会全存储,它会返回二级域名taobao.com的管理服务器ip地址,本地DNS服务器再次查找返回给我们www.taobao.com 的ip地址,本地DNS服务器返回给客户端,只会客户端根据ip寻址,连接目标服务器。