从互联网诞生起,安全就一直伴随着网站的发展,各种web攻击和信息泄露也从未停止,本文就当下最要的攻击手段进行一次简单的汇总,也作为自己的备忘。

1、XSS攻击

  XSS攻击即跨站脚本攻击,指黑客篡改网页,注入HTML或script脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。常见的XSS攻击主要有两种,一是反射型,攻击者引诱用户点击一个嵌入恶意脚本的链接,打到攻击的目的,例如,攻击者发布的微博中有一个含有恶意脚本的URL,用户点击该URL,脚本会自动关注攻击者的新浪微博ID,发布含有恶意脚本URL的微博,攻击就被扩散了。

另外一种XSS攻击是持久性XSS攻击,黑客提交含有恶意脚本的数据,保存在攻击的Web站点的数据库中。此种攻击经常用在论坛博客等微博程序中。

XSS消毒

  XSS攻击者一般都是通过在请求中嵌入恶意脚本达到攻击的目的,这些脚本是一般用户输入不使用的,如果进行过滤和消毒处理,即对某些HTML危险字符转移,如">"转义为"&gt;"、"<"转义为"&lt;"等就可以防止大部分的攻击。

  最早由微软提出,即浏览器禁止页面Javascript访问带有HttpOnly属性的Cookie。HttpOnly并不是直接对抗XSS攻击的,而是防止XSS攻击者窃取Cookie。对于存放敏感信息的Cookie,如用户认证信息等,科通过该Cookie添加HttpOnly属性,避免被攻击脚本窃取。

2、SQL注入

  所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.
当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造(或者影响)动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。例如,攻击者发送含有恶意恶意SQL命令的http请求,如(http://www.a.com?username=eric'; drop table users;--),服务器用请求参数构造数据库SQL命令时,恶意SQL就被一起构造,并在数据库中一起执行,如:select * from users where username='eric'; drop table users;--'

消毒

  1、关闭网站错误回显,即不要把服务器内部500错误显示到浏览器上。因为攻击者可能通过故意构造非法参数,使服务器端数据库表等异常信息显示到浏览器上,为攻击者猜测数据库表结构提供了便利。

  2、通过正则匹配过滤请求数据中可能注入的SQL关键字,如“drop table”,“Update”、“Inser”,“EXEC”等。

  3、使用预编译手段,绑定参数是最好的防止SQL注入方法。攻击者的恶意SQL会被当做SQL的参数,而不是命令被执行。

3、CSRF攻击

  SCRF即跨站点伪造请求攻击,攻击者通过跨站请求,以合法用户身份进行非法操作,如转账交易、发表评论等,其核心是利用了浏览器Cookie或服务器Session策略,盗取用户身份,相应地,CSRF的预防手段主要是识别请求者身份。主要有一下几种方法。

表单Token

  CSRF是一个伪造用户请求的操作,所以需要构造用户请求的所有参数才可以,表单Token通过在请求参数中增加随机数的办法来阻止攻击者获取所有请求参数:在页面表单中增加一个随机数作为Token,每次相应页面的Token都不同,从正常页面提交的表单会包含该Token值,伪造的请求无法获取该值,服务器端检查请求参数中Token的值是否正确。

验证码

相对来说,验证码则更有效,即提交请求时,需要用户输入验证码,以避免用户在不知情的情况下被攻击者伪造请求。

Referer check

  Http请求头的Referer域中记录着请求来源,可通过检查请求来源,验证  其是否合法,很多网站使用这个功能实现图片盗链(如果图片访问的页面来源不是来自自己网站的就拒绝访问)

4、其他攻击和漏洞

除了上面提到的常见攻击,还有一些漏洞也常被黑客利用

Error Page

  许多Web应用 默认是打开异常信息输出的,即服务器端未处理的异常或堆栈信息会直接显示到客户的浏览器上,这种方式虽然对调试有好处,但同时也给黑客造成可乘之机。通过故意构造非法输入,使系统运行出错,获得异常信息,从而寻找系统漏洞进行攻击。

HTML注释

HTML注释会显示在客户端的浏览器中,给黑客造成攻击便利,因此程序发布时,最好把html注释去掉。

文件上传

设置文件上传白名单,只允许上传可靠的文件类型,例如,黑客可以通过网站文件上传功能上传的是可执行文件,并通过改程序获取服务器端执行命令的能力,那么攻击者几乎可以在服务器上为所欲为了。

我们还可以只用Web防火墙和网站安全漏洞扫描来保证网站的安全性。

本文参考:大型网站技术架构。

转载于:https://www.cnblogs.com/lc-chenlong/p/3562089.html

网站常见攻击与防御汇总相关推荐

  1. XSS常见攻击与防御

    本文获得作者授权刊发,更多信息请关注作者专栏. XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS ...

  2. 网站cc攻击的防御步骤

    通常发起CC攻击是使用专门的攻击工具,同时模拟成多个用户,向目标网站发起多个请求,一般这些软件为了防止地址被屏蔽,还内置通过代理攻击的功能.可以通过多个代理服务器对目标发起攻击,使封IP的防御方式变的 ...

  3. 网络中常见攻击及其防御方式

    一.Smurf攻击 1.Smurf 攻击是一种 DDoS攻击,其中攻击者试图用ICMP数据包淹没目标服务器.通过使用目标设备的欺骗 IP地址向一个或多个计算机网络发出请求,计算机网络随后响应目标服务器 ...

  4. 05 - 钓鱼网站的攻击与防御

    1.攻击原理 使用一个CentOS充当网关,然后再网关做SNAT,使得可以访问外网,再网关上配置上DNS解析,指定当用户访问JD的时候,跳转到我们部署的服务器上 使用一个CentOS充当服务器,再搭建 ...

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

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

  6. Web安全技术—常见的攻击和防御

    对于一个Web应用来说,可能会面临很多不同的攻击.下面的内容将介绍一些常见的攻击方法,以及面对这些攻击的防御手段. 一.跨站脚本攻击(XSS) 跨站脚本攻击的英文全称是Cross Site Scrip ...

  7. 常见的DNS攻击与防御

    DNS查询通常都是基于UDP的,这就导致了在查询过程中验证机制的缺失,黑客很容易利用该漏洞进行分析.DNS服务可能面临如下DNS攻击风险: 黑客伪造客户端源IP地址发送大量的DNS请求报文,造成DNS ...

  8. 常见的网络安全攻击及防御技术概述

    网络安全技术涉及从物理层到业务层的各个层面,贯穿产品设计到产品上线运营的全流程.现阶段网络攻击的方式和种类也随着互联网技术的发展而不断迭代,做好网络安全防护的前提是我们要对网络攻击有充分的了解.下文将 ...

  9. 什么是CC攻击?如何判断网站是否被CC攻击? CC攻击怎么防御?

    什么是CC攻击?如何判断网站是否被CC攻击? 一.什么是CC攻击? 二.如何判断网站是否被CC攻击? 三.CC攻击怎么防御? 1.服务器垂直扩展和水平扩容 2.数据缓存(内存级别,不要用文件) 3.页 ...

最新文章

  1. 网站权重增长缓慢,优化技巧是关键!
  2. 工作中用到的java反射机制_(转)JAVA-反射机制的使用
  3. neo4j-admin导入海量数据
  4. 华为机试支持python吗_4.10华为暑期实习生机试题目,python解答
  5. 【完整版-斯坦福-密码学】全13讲(绪论)【笔记】
  6. POJ 2993 Emag eht htiw Em Pleh(模拟)
  7. java语言的一些小语法
  8. MFC通过txt查找文件并进行复制-备忘
  9. 190517每日一句
  10. C语言程序设计(第三版)何钦铭著 习题4-3
  11. UML 构件图 component diagram
  12. Android移动端性能测试工具mobileperf
  13. 手机游戏开发工程师培训教程
  14. android apk旋转,系统的屏幕旋转弱爆了!超强屏幕旋转控制APP
  15. Executing an update/delete query
  16. 用java代码编写出喜字_喜字是怎么写的
  17. 智能安全帽-4G记录仪等移动视频图传系统里面的RTSP流输出的实现机制
  18. 【不定期更新】游戏开发中的一些良好习惯与技术技巧
  19. 基于微软 SAPI 的 TTS 程序实现
  20. 电脑无法连接WiFi,一直显示无法连接此网络

热门文章

  1. 好玩的python代码示例-这可能是最好玩的python GUI入门实例!
  2. python简单代码input-【python系统学习05】input函数——实现人机交互
  3. python中处理日期和时间的标准模块是-Python time模块参考手册
  4. python第三方库numpy-谁能介绍下Python生态中的第三方库NumPy
  5. python语言必背代码-好用到哭!请记住这20段Python代码
  6. python怎么下载-如何下载python包
  7. python大数据分析实例-python大数据分析代码案例
  8. python程序代码大全-调试Python程序代码的几种方法总结
  9. python快速自学方式-Python自学之路 ,自学Python快速入门方法
  10. python 数据分析学什么-如何学习Python数据分析呢?老男孩Python培训