几种常见的Web攻击

文章目录

  • 几种常见的Web攻击
    • 一、DoS攻击
      • 1.SYN洪水攻击
      • 2.IP欺骗
      • 3.Land攻击
      • 4.针对DoS攻击的防御
    • 二、CSRF攻击
      • 1. CSRF攻击的发生有三个必要条件:
      • 2.几种防护方法:
    • 三、XSS漏洞攻击
      • 1.非持久型XSS漏洞
      • 2.持久型XSS漏洞
    • 四、SQL注入
      • 1.SQL注入的危害
      • 2.SQL注入的方式
      • 3.防止SQL注入的解决方案

一、DoS攻击

  • DoS(Denial of Service),拒绝服务,顾名思义这种攻击是为了让服务器无法提供正常服务,最常见的DoS攻击是网络带宽攻击和连通性攻击
  • 带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通过。
  • 连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
  • 可以看出来,DoS攻击本身也受网络规模和网络速度的限制,单个计算机没办法做到攻破一台服务器,所以DoS攻击者开发了分布式攻击DDoS(Distributed Denial of Service),集合许多计算机的带宽来同时对一台服务器发动攻击。

下面我们来看三种典型的DoS攻击:SYN洪水攻击、IP欺骗和Land攻击。

1.SYN洪水攻击

  • SYN洪水攻击是利用TCP协议的缺陷,通过发送大量的半连接请求消耗资源,造成网络拥塞甚至宕机以达到攻击者不可告人的秘密。
  • 我们都知道标准的TCP连接需要经过三次握手,首先是客户端发送SYN,服务端收到后发送ACK-SYN,客户端收到后再回复ACK连接建立成功。
  • 黑客针对TCP协议栈在两台主机间初始化连接握手的过程进行攻击,黑客通过包装第三次握手的ACK包使得服务端不能收到客正确的户端ACK包
  • 而由于TCP协议具有超时重传机制,服务端会一直重传直到超时。这些虚假连接会一直占用缓冲区,正常的请求被丢弃,引起严重的网络阻塞甚至系统瘫痪

2.IP欺骗

  • 这种攻击同样是利用TCP协议栈的漏洞,我们知道TCP协议有一个RST位用于连接出错时的复位。
  • 这种攻击利用IP欺骗,使得服务器将合法的用户连接复位,影响正常用户的使用。
  • 比如说现在有一个合法连接(172.111.222.123),攻击者构造一个TCP数据报,伪装自己的IP是172.111.222.123,并向服务器发送一个带RST位的数据报。
  • 服务器接收到后会认为该连接发生错误,将该连接从缓冲区中移除
  • 所以正常用户只能重新发起连接。

3.Land攻击

  • 进行Land攻击时,黑客特别打造一个源地址和目标地址都被设置成某一个服务器的SYN包,此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时。大量的连接将严重影响服务器性能

4.针对DoS攻击的防御

那么我们面对DoS攻击是否是束手无策呢?当然不是,我们可以做以下防范:

  • 缩短SYN超时时间,以减少缓冲区中保留的半连接个数
  • 限制同时打开的半连接个数,当半连接个数已经达到上限时,后面未成功的TCP连接将被丢弃而不会保存在缓冲区中。
  • 设置SYN Cookie,就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被一概丢弃。
  • 一般来说,第三种方法在防范该类问题上表现更佳。
  • 同时可以在Web服务器端采用分布式组网、负载均衡、提升系统容量等可靠性措施,增强总体服务能力

二、CSRF攻击

CSRF(Cross Site Request Forgery)攻击,即跨站请求伪造,是一种常见的Web攻击。

  • 攻击者可以盗用我们的登陆信息,以我们的身份模拟发送各种请求。
  • 例如:我们正常打开一个网站,输入账号密码登陆,此时服务器会返回一个cookie,浏览器将其保存在本地来识别身份信息。
  • 这时如果我们不小心打开了一个钓鱼网站,这个钓鱼网站就可以带着cookie冒充我们为所欲为。
  • 归根结底是源于Web的隐式身份验证,Web的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的。

1. CSRF攻击的发生有三个必要条件:

  • 已经登录一个站点,并在本地保存下cookie。
  • 在没有退出刚刚站点的情况下,打开了某第三方钓鱼网站或网站本身存在问题。
  • 原站点没有CSRF防护

前两个条件我们很难完全杜绝,所以为了保证安全,网站必须有必要的CSRF防护机制。

2.几种防护方法:

我们已经知道CSRF攻击的原理是伪造用户请求,所以我们防护的时候就要从这里出发,试想如果我们的请求里有黑客伪造不出来的东西那就可以杜绝这种攻击方式了。

  • 对于POST请求使用验证码,这个方案可以完全杜绝CSRF攻击,但验证码过多会使用户体验很差,所以可以对敏感操作加验证码。
  • 非GET请求中添加token,当客户端请求页面,服务器渲染页面时给每个表单生成一个随机数token,并且将token放置到session当中,然后将token发给客户端(一般通过构造hidden表单)。下次客户端提交请求时,token会随着表单一起提交到服务器端。接收到请求后,服务器端会对token值进行验证,判断是否和session中的token值相等,如果不相等则拒绝访问。

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

三、XSS漏洞攻击

XSS(Cross Site Scripting)跨站脚本攻击,XSS的原理是黑客向Web页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而可以达到黑客盗取用户信息或其他侵犯用户安全隐私的目的

XSS漏洞主要分为持久型XSS漏洞和非持久性XSS漏洞

1.非持久型XSS漏洞

  • 非持久性XSS漏洞主要有以下几个特点:

  • 不经过服务器储存

  • 黑客需要诱导用户点击恶意url

  • 反馈率低,难以发现和修复

  • 为了防止出现非持久性XSS漏洞,必须确保以下几点:

  • 尽量不要从URL,document.referrer,document.forms 等这种DOM API中获取数据直接渲染。

  • 尽量不要使用 eval, document.write(),document.writeln(), innerHTML,document.creteElement()等可执行字符串的方法。

  • 对涉及DOM渲染的方法传入的字符串参数做转义(破坏html语法,使得展示字符而不是执行代码)。

  • 必要的话,前端渲染的时候对任何的字段都需要做转义编码。

2.持久型XSS漏洞

  • 持久性XSS漏洞被攻击有以下几个必要条件:
  • POST请求提交表单后端没做转义直接入库
  • 后端从数据库中取出数据没做转义直接输出给前端
  • 前端拿到后端数据没做转义直接渲染页面
  • 防止出现持久性XSS漏洞,需要前后端的配合,要做到以下几点:
  • 后端在数据入库时,不能相信任何前端数据,将所有的字段统一进行转义处理。
  • 后端对返回给前端的数据统一进行转义处理。
  • 前端在渲染页面的时候不能相信任何后端数据,任何字段都需要做转义处理。
  • 转义操作可以手动编写js函数进行转义,也可以借助开源工具包转义。

四、SQL注入

为什么会存在sql注入呢,只能说SQL出身不好。

  • 因为sql作为一种解释型语言,在运行时是由一个运行时组件解释语言代码并执行其中包含的指令的语言。

  • 基于这种执行方式,产生了一系列叫做代码注入(code injection)的漏洞 ,它的数据其实是由程序员编写的代码和用户提交的数据共同组成的。

  • 程序员在web开发时,没有过滤敏感字符,绑定变量,导致攻击者可以通过sql灵活多变的语法,构造精心巧妙的语句,不择手段,达成目的,或者通过系统报错,返回对自己有用的信息。

1.SQL注入的危害

  • 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露;
  • 网页篡改:通过操作数据库对特定网页进行篡改;
  • 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改;
  • 服务器被远程控制,被安装后门;
  • 删除和修改数据库表信息.

2.SQL注入的方式

通常情况下,SQL注入的位置包括:

  • 表单提交,主要是POST请求,也包括GET请求;
  • URL参数提交,主要为GET请求参数;
  • Cookie参数提交;
  • HTTP请求头部的一些可修改的值,比如Referer、User_Agent等;

3.防止SQL注入的解决方案

  • 对用户的输入进行校验,使用正则表达式过滤传入的参数;
  • 使用参数化语句,不要拼接sql,也可以使用安全的存储过程;
  • 不要使用管理员权限的数据库连接,为每个应用使用权限有限的数据库连接;
  • 检查数据存储类型;
  • 重要的信息一定要加密;

几种常见的Web攻击相关推荐

  1. 常见的Web攻击手段,拿捏了!

    大家好,我是小菜. 一个希望能够成为 吹着牛X谈架构 的男人!如果你也想成为我想成为的人,不然点个关注做个伴,让小菜不再孤单! 本文主要介绍 互联网中常见的 Web 攻击手段 如有需要,可以参考 如有 ...

  2. 常见的Web攻击.md

    1.ZIP炸弹 zip炸弹就是一个高压缩比的zip文件,它本身可能只有几M或几十M的大小,但是解压缩之后会产生巨大的数据量,会解压到几十G的大小甚至更大,这种zip文件会对解压缩的系统造成严重的资源负 ...

  3. 常见的Web攻击方式有哪些?黑客:28种总有一款适合你

    作者:蔚可云2021-01-27 09:41:41 安全应用安全 Web攻击手段,有些可植入恶意代码,有些可获取网站权限,有些还能获取网站用户隐私信息,光常见的Web攻击,就有28种之多,方式多.破坏 ...

  4. 10种常见网站安全攻击手段及防御方法

    在某种程度上,互联网上的每个网站都容易遭受安全攻击.从人为失误到网络罪犯团伙发起的复杂攻击均在威胁范围之内. 网络攻击者最主要的动机是求财.无论你运营的是电子商务项目还是简单的小型商业网站,潜在攻击的 ...

  5. 五种常见的DNS攻击类型及应对方式

    随着俄乌冲突中网络战的升级,DNS安全成为业界关注的焦点. 无论是去年3月份NSA发布的保护性DNS(PDNS)推荐指南,还是俄罗斯主权互联网的核心--DNS服务在战争期间的大规模启用,都表明DNS安 ...

  6. 常见的web攻击有哪些?如何防御?

    web攻击是什么 Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为,如植入恶意代码.修改网站权限.获取网站用户隐私信息等 Web应用程序的安全性是任何基于Web业务的 ...

  7. 常见的web攻击技术

    今天看图解http,里面讲了些常见的web攻击技术,写一个博客对其原理及其应对方式进行一个整理 1.xss跨站攻击技术:主要是攻击者往网页里嵌入恶意脚本,或者通过改变html元素属性来实现攻击,主要原 ...

  8. 常见的Web攻击方式:SQL注入、XSS跨站脚本攻击、CSRF跨站点请求伪造

    常见的Web攻击有SQL注入.XSS跨站脚本攻击.跨站点请求伪造共三类,下面分别简单介绍. 1 SQL注入 1.1 原理 SQL注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字 ...

  9. 常见的Web攻击手段-整理

    整理常见的Web攻击手段: XSS攻击 CSRF攻击 SQL注入攻击 文件上传漏洞 DDoS攻击 其他攻击手段 XSS攻击 XSS(Cross Site Scripting)跨站脚本攻击,为了不与层叠 ...

最新文章

  1. 【Android 安全】DEX 加密 ( Java 工具开发 | apk 文件签名 )
  2. 第10周项目实践 线索二叉树的建立及遍历
  3. 阿里云上创建个人网站
  4. 如何自己亲手制作一个防疫地图?
  5. jmeter实现翻页功能_JMeter定制功能实现
  6. c程序编写x的y次方的方法
  7. ajax请求参数为中文乱码的情况
  8. centos6.7 搭建jenkins
  9. python批量提取word指定内容_python 批量提取word应聘登记表数据+情感分析
  10. selenium弹窗处理,包括Javascript弹窗、HTML弹出层和Windows弹窗
  11. [Nowcoder] [牛客网NOIP赛前集训TG4A] 动态点分治 [模拟]
  12. 【前端点击穿透】pointer-events属性详解
  13. 打印机用计算机名慢,“电脑连上打印机就超级慢”的解决方案
  14. web前端开发相关网站
  15. java控制电脑双屏模式_win10电脑双屏幕设置方法 双屏双桌面的设置步骤
  16. Linux面试题汇总答案
  17. 涂鸦智能季报图解:营收5532万美元同比降3% 亏5500万美元
  18. EXCEL 2010怎样固定表头
  19. 每天学一点英文:Espresso 20210813
  20. loss曲线震荡(模型不收敛、acc震荡)

热门文章

  1. 在 IntelliJ IDEA 中,如何快速将选中文件用资源管理器打开
  2. Spring Boot 定时任务
  3. 关于Redis与关系型数据的一些区别
  4. zabbix JMX监控Tomcat及错误解决方法
  5. Android 开发笔记“关闭默认键盘”
  6. [学习笔记]Hadoop 配置调试错误收集
  7. Delphi 2010 新增功能之: TWICImage 类[4] - 图像的修剪
  8. 数学之美系列12(转帖)
  9. CodeForces - 933A A Twisty Movement(dp)
  10. 洛谷 - P2944 [USACO09MAR]Earthquake Damage 2 G(最小割)