Web攻击

在互联网中,攻击手段数不胜数,我们平时不能以自己只是普通的开发程序员而不是安全方向的开发者为理由,而不去掌握基本的 Web 攻击手段!我们来熟悉一下有哪几种常见的 Web 攻击手段

常见的 Web 攻击手段主要有 XSS 攻击、CSRF 攻击、SQL 注入攻击、DDos 攻击、文件漏洞攻击等。这几种攻击方式的防护手段并不复杂,却还是有很多企业遭受了该攻击,朔源到头,还是因为人为的疏忽。

一、XSS 攻击

XSS 攻击的全称为 跨站脚本攻击(Cross Site Scripting)

为什么不叫CSS ,那是因为为了不跟层叠样式表(Cascading Style Sheet,CSS)混淆

XSS攻击 是 Web 应用中最常见到的攻击手段之一。

跨站脚本攻击,关键词 脚本。

攻击者常常在网页中嵌入了恶意的脚本程序,当用户打开该网页的时候,脚本程序便开始在客户端的浏览器后台执行,常用于盗取客户端的 cookie,用户名密码,下载执行病毒的木马程序,以及获取客户端 Admin 权限。

1、攻击原理

前端常用表单的形式向后台提交信息

很普通的一段html代码,向后台提交 username 的信息,正常情况下,用户一般会输入自己的 username,这个时候毫无问题,但是在不正常的情况下,用户输入的不是一个正常的字符串,而是 "/><!- 。按这个时候表单的内容就会变成

<!-" />

这个时候向后台提交参数,由于 username 的不合法性,校验可能不通过,服务端就重定向会该页面,并且带上以上参数,这个时候页面就会弹出一个警告框:

警告框问题不是很大,是因为取决于这段脚本,如果攻击者稍做修改,那么性质可能就不一样了~

甚至,攻击者可以对URL进行操作,正常提交的地址为

www.xxx.com/login?username="/><!-"

攻击者可以对 URL 进行编码用来迷惑用户:

www.xxx.com/login?username="%2F%3E%3Cscript%3E%20alert(%22bingo%22)%20%3C%2Fscript%3E%3C!-"
2、防护手段

知道了如何攻击,防护起来就不难,我们对症下药即可。既然输入的参数不合法,我们就很有必要对入参进行校验,比如 <、>、"、"、’、’ 这些特殊字符我们很有必要进行转义与校验。

二、CSRF 攻击

CSRF 攻击全称 跨站请求伪造 (Cross site request forgery)。是一种对网站的恶意利用,我们上面说到的 XSS攻击 是利用站点内的信任用户,自己去触发脚本而导致的攻击。而 CSRF 则是通过伪装来自受信任用户的请求去利用受攻击的网站。

CSRF 攻击,关键词:伪造。

攻击这盗用了访问用户的身份,以访问者的名义向第三方网站发送恶意请求,常用于利用访问者的身份发送消息,进行交易转账以及盗取账号。

1、攻击原理

受害者首先在信任站点完成了登录,并且生成了 Cookie,Cookie会在浏览器保存一定的时间。到这一步,用户如果在没有登出 信任站点 的情况下,访问了 恶意站点,这个时候 恶意站点 就会向 信任站点 发起请求,这个请求就会带上以上生成的 Cookie,当恶意请求来到 信任站点,信任站点 看到请求携带的 Cookie,就会判断该请求是 受害者 发出的。因此 信任站点 就会根据 受害者 的权限来完成 恶意请求 的指令,而这个指令可能是利用 受害者 的身份发送消息,转账支付等等操作,这样 恶意站点 就达到了伪造 受害者 请求 信任站点 的目的。

看到这个流程不知道你是否有所启发,不知道屏幕前的小伙伴是否有过 QQ 被盗用的经历,当然,有些盗用的手段与上面的流程是相似的。

该攻击手段在日常中十分常见。如果某个支付系统的转账地址为 www.xxx.com/pay?accountNum=xxxx&money=xxx。其中 accountNum 为转账目的的账户,money 为转账金额。那这个时候如果你刚巧登录过了该支付系统,又没有及时的登出,在访问恶意站点的时候,如果你点开了某张图片,而图片的地址为 :

当你美滋滋地浏览图片的时候,却不知道此时你的账户上已经悄悄的少了指定金额!

这就是因为你没有及时的登出支付系统,而又点击了 恶意站点的 恶意链接,携带了你未过期的 Cookie,成功窃取了你的金额。

2、防护手段

同样知其症下其药!防护手段如下:

1)将 cookie 设置为 HttpOnly

CSRF 攻击的关键就在于利用了用户未过期的 Cookie,那么为了防止 Cookie 的盗取,就需要在 Cookie 中设置 HttpOnly 属性,这样通过程序(XSS 攻击)就无法读取到 Cookie 信息,避免了攻击者伪造 Cookie 的情况出现。

2)增加 token

该防护手段还是针对 Cookie 的盗取,由于请求中所有的用户验证信息都存放于 Cookie 中,因为我们抵御 CSRF 的关键就在于:如何在请求中放入攻击者所不能伪造的信息,并且该信息不能存放在 Cookie 中。那么我们就可以在请求返回中加入一个随机生成的 token,当请求来到时进行 token 的校验,如果校验不通过则认为是 CSRF 攻击而拒绝该请求。

3)通过 Referer

根据 HTTP 协议,在 HTTP 请求头上有一个字段叫做 referer,它记录了该Http 请求的来源地址。在通常情况下,访问一个安全受限的页面的请求都来自同一个网站。

在 CSRF 中恶意请求是从 恶意站点 发出的,因此要防御 CSRF 攻击,需要对每一个请求验证其 referer 值即可。

三、SQL 注入攻击

SQL注入 是程序员最经常遇到的,所谓 SQL注入,就是通过把 SQL 命令伪装成正常的请求参数,传递到服务端,欺骗服务器最终执行恶意的 SQL命令,达到入侵的目的。攻击者常常利用 SQL 注入的漏洞,来查询非授权的关键信息,修改数据库服务器的数据,改变表结构,危害极大!

web攻击有哪些方式?小白需要知道的几种攻击方式相关推荐

  1. 计算机文件保存方式,Word文档的三种保存方式

    word中有多种保存文档的方式.可保存当前处理的活动文档 (活动文档:正在处理的文档.在 Microsoft word 中键入的文本或插入的图形将出现在活动文档中.活动文档的标题栏是突出显示的.),无 ...

  2. 依赖注入的三种方式_一起学Spring之三种注入方式及集合类型注入

    本文主要讲解Spring开发中三种不同的注入方式,以及集合数据类型的注入,仅供学习分享使用,如有不足之处,还请指正. 概述 Spring的注入方式一共有三种,如下所示: 通过set属性进行注入,即通过 ...

  3. python做定时任务的方式及优缺点_Python3-定时任务四种实现方式

    最近做一个小程序开发任务,主要负责后台部分开发:根据项目需求,需要实现三个定时任务: 1>定时更新微信token,需要2小时更新一次: 2>商品定时上线: 3>定时检测后台服务是否存 ...

  4. oracle分页的三种方式,oracle 使用rownum的三种分页方式

    rownum是Oracle数据库中的一个特有关键字,返回的是一个数字代表记录的行号. 基础知识:rownum只能做 获取51到100的数据 三种分页的写法: 1.使用minus,原理就是查询出前100 ...

  5. c语言函数三种方式,c语言函数的三种调用方式是什么

    函数的三种调用方式:1.函数作为表达式中的一项出现在表达式中,例"z=max(x,y)":2.函数作为一个单独的语句,例"printf("%d",a) ...

  6. Web前端笔记-two.js图形旋转动画的2种实现方式

    这里有两种方式! 第一种是使用setInterval: 代码如下: let time = setInterval(function(){if(sun.sun.rotation >= TWO_PI ...

  7. layui表格更改一列数据_【WEB前端开辟】layui表格数据变动的一种处理方式

    表格数据更改,平常包括几个内容:新增.修正.删除.挪动,开辟中常常会面对的一个题目就是更改以后怎样将数据同步到节点上,一向以来个人的提议照样应用表格重载,不管是url情势的照样data情势的实际都是须 ...

  8. 计算机内部采用的传输方式串行,下列哪一种传输方式被用于计算机内部的数据传输...

    摘要: 下列病原染所致结膜炎都微生物感是由.不要宝的精擦用酒拭宝身体,输方式被数据吸收中毒酒精导致后很可能,宝由的宝嫩于皮发烧肤稚,所以.泵抑质子制剂周的疗程至少8,用于餐前一般服药.... 下列病原 ...

  9. 分布式锁的三种实现方式_分布式锁的几种实现方式~

    目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题.分布式的CAP理论告诉我们"任何一个分布式系统都无法同时满足一致性(Consistency) ...

最新文章

  1. java怎么给类中的私有变量赋值_Java学习笔记分享 如何理解接口抽象类和关键字...
  2. [转]C++模板学习
  3. 怎样基于谷歌地图的Server缓存公布Image Service服务
  4. mysql my.cnf_如何知道mysql的my.cnf位置
  5. 产品设计体会(6010)有关网站改版
  6. TFS 2010 使安装更容易,让VSS历史
  7. qpushbutton设置两个图标_苹果手机的月亮图标有什么功能?原来这么好用,不会真的太浪费了...
  8. 进程间通讯:实现基于多进程的文件拷贝
  9. XMind8update6 补丁
  10. VTK:图形基本操作进阶——表面重建技术(等值面提取)
  11. linux 系统挂载ISO 文件
  12. 波束成形学习-1(Introduction)
  13. 大学英语四级电子照片修改过程。
  14. 因特网在线聊天协议(IRCP/IRC)--网络大典
  15. VC++6.0英文原版+MSDN6.0下载(ISO格式)
  16. 强烈推荐免费在线图片转文字的工具
  17. 全志v40 开发板_全志
  18. 电子招投标系统源码 —降低企业采购成本
  19. 前端学习——HTML思维导图
  20. 物联网技术概论:第6章

热门文章

  1. 单域名PHP网站镜像克隆程序网站源码
  2. android选择指定目录,android之app新建目录位置选择
  3. PDF注释或备注字体大小如何改变?
  4. SAP abap 开发工具下载地址以及配置开发环境
  5. Font Color,iframe标签
  6. 【路径规划】Matlab 遗传算法求解多式联运问题(带时间窗、配送成本,中转成本总成本最低)
  7. Surface Pro 7安装KaliWindows双系统实战,包括触摸屏驱动安装,以及字体过小,搜狗输入法谷歌浏览器等基础软件安装,以及开启远程桌面等等基础好用的操作
  8. QT导出数据到Excel的方法
  9. 通过银行卡号解析银行名称和卡别
  10. 日本公司怎么注册?有何优势呢?