常见的web攻击

  1. XSS-跨站脚本攻击
  2. CSRF-跨站请求伪造
  3. 点击劫持
  4. SQL注入
  5. OS注入
  6. 请求劫持
  7. DDOS

XXS

名称

  • 简称: XSS
  • 英文: Cross Site Scripting
  • 全称: 跨站脚本攻击

定义:

  • XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本

场景

  • jsonp、eval、DNS污染、url带参数 等

攻击的危害包括

  1. 获取用户的cookie,获取用户的密码等个人信息
  2. 获取,修改或者删除页面和网站的数据
  3. 劫持前端的逻辑
  4. 冒充用户发送请求
  5. 非法转账、强制发送邮件

XSS攻击的分类

  1. 反射性

本来正常的链接是www.abc.com?params=China,但是攻击者诱导用户点击了www.abc.com?params=或者www.abc.com?params=.script的代码可以获取到页面的数据,用户的cookie,冒充用户发送请求等.

  1. 存储型

例如: 攻击者在表单提交的输入框中输入了一段js代码, 服务端和客服端都没有过滤,而存储到数据库.每个浏览该页面的用户都会执行这段代码

3.DOMXSS

这种类型则是利用非法输入来闭合对应的html标签。 比如,有这样的一个a标签: 乍看问题不大,可是当$var的内容变为 ’ οnclick=’alert(/xss/) //,这段代码就会被执行。

防范手段

  1. 转义 用户的输入是不可信任的.把不合法的字符(比如<>/&."`)转义

  2. 设置请求头

  • httpOnly: true, cookie 只允许server修改
  • X-XSS-Protection:0 打开XSS过滤
  • Content-Security-Policy: default-src 'self' // 只允许加载本站资源
  • Content-Security-Policy: img-src https://* // 只允许加载 HTTPS 协议图片
  • Content-Security-Policy: child-src 'none' // 不允许加载任何来源框架
  1. 验证验证refererctx.request.header.referer
  2. 验证码之类的人机校验

CSRF

名称

  • 简称: CSRF
  • 英文: Cross-site request forgery
  • 全称: 跨站请求伪造

定义:

  • XSS是一种在web应用中的计算机安全漏洞,模拟被信任的用户,对网站进行攻击.

与XSS的比较

  • XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

攻击的危害包括

  1. 获取用户的cookie,获取用户的密码等个人信息
  2. 获取,修改或者删除页面和网站的数据
  3. 劫持前端的逻辑
  4. 冒充用户发送请求
  5. 非法转账、强制发送邮件

XSRF攻击的例子

被害人A刚刚登陆了某银行的网站,黑客B这时候给A发送了一条该银行网站的推广信息的链接.A点击了该链接并查看了优惠信息.
而该链接是黑客B做的诱惑链接,里面有获取A的cookie 信息的js代码.并向银行发送了转账的ajax的请求

防范手段

  1. 设置请求头
  • httpOnly: true, cookie 只允许server修改
  • Content-Security-Policy: default-src 'self' // 只允许加载本站资源
  • Content-Security-Policy: img-src https://* // 只允许加载 HTTPS 协议图片
  • Content-Security-Policy: child-src 'none' // 不允许加载任何来源框架
  1. 验证验证refererctx.request.header.referer
  2. 验证码之类的人机校验
  3. 服务器向客户端发送token,浏览器把token隐藏到from中,提交数据的时候携带token。服务器收到数据后会先验证token是否正确。

点击劫持

名称

  • 英文: click jacking
  • 全称: 点击劫持

定义:

  • 点击劫持是一种视觉欺骗的攻击手段。攻击者将需要攻击的网站通过 iframe 嵌套的方式嵌入自己的网页中, 并将 iframe 设置为透明,在页面中透出一个按钮诱导用户点击

攻击的危害包括

  1. 在用户不知情的情况下,操作被攻击的网站

防范手段

  1. 设置请求头
  • X-FRAME-OPTIONS: 'DENY',
DENY // 拒绝任何域加载
SAMEORIGIN // 允许同源域下加载
ALLOW-FROM // 可以定义允许frame加载的页面地址
复制代码
  1. js设置,但是这种不靠谱,黑客在iframe的外层再包装一层iframe,该方法就失效了
if (self === top) {
    
} else {
    top.location = self.location
}

复制代码

SQL注入

名称

  • 简称: XSS
  • 英文: Cross Site Scripting
  • 全称: 跨站脚本攻击

定义:

  • 是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,

攻击的危害包括

  1. 获取用户的cookie,获取用户的密码等个人信息
  2. 获取,修改或者删除页面和网站的数据
  3. 劫持前端的逻辑
  4. 冒充用户发送请求
  5. 非法转账、强制发送邮件

XSS攻击的分类

  1. 反射性

本来正常的链接是www.abc.com?params=China,但是攻击者诱导用户点击了www.abc.com?params=或者www.abc.com?params=.script的代码可以获取到页面的数据,用户的cookie,冒充用户发送请求等.

  1. 存储型

例如: 攻击者在表单提交的输入框中输入了一段js代码, 服务端和客服端都没有过滤,而存储到数据库.每个浏览该页面的用户都会执行这段代码

3.DOMXSS

这种类型则是利用非法输入来闭合对应的html标签。 比如,有这样的一个a标签: 乍看问题不大,可是当$var的内容变为 ’ οnclick=’alert(/xss/) //,这段代码就会被执行。

防范手段

  1. 转义 用户的输入是不可信任的.把不合法的字符(比如<>/&."`)转义

  2. 设置请求头

  • httpOnly: true, cookie 只允许server修改
  • X-XSS-Protection:0 打开XSS过滤
  • Content-Security-Policy: default-src 'self' // 只允许加载本站资源
  • Content-Security-Policy: img-src https://* // 只允许加载 HTTPS 协议图片
  • Content-Security-Policy: child-src 'none' // 不允许加载任何来源框架
  1. 验证验证refererctx.request.header.referer
  2. 验证码之类的人机校验

转载于:https://juejin.im/post/5cb6e6716fb9a0689f4c25ee

你可能感兴趣的:(常见的web攻击)