一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法.

一.SQL注入

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。[1] 比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.

原理:

SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的 数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。
     防护:
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过 正则表达式,或限制长度;对单引号和
双"-"进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用 存储过程进行数据查询存取。
3.永远不要使用 管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的 错误信息对原始错误信息进行包装
6.sql注入的检测方法一般采取辅助 软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思 网站安全平台检测工具。MDCSOFT SCAN等。采用 MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。

二.跨站脚本攻击(XSS)

跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法。攻击者在网页上发布包含攻击性代码的数据。当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行。通过XSS可以比较容易地修改用户数据、窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击

常见解决办法:确保输出到HTML页面的数据以HTML的方式被转义

出错的页面的漏洞也可能造成XSS攻击.比如页面/gift/giftList.htm?page=2找不到,出错页面直接把该url原样输出,如果攻击者在url后面加上攻击代码发给受害者,就有可能出现XSS攻击

三. 跨站请求伪造攻击(CSRF)

跨站请求伪造(CSRF,Cross-site request forgery)是另一种常见的攻击。攻击者通过各种方法伪造一个请求,模仿用户提交表单的行为,从而达到修改用户的数据,或者执行特定任务的目的。为了假冒用户的身份,CSRF攻击常常和XSS攻击配合起来做,但也可以通过其它手段,例如诱使用户点击一个包含攻击的链接
    解决的思路有:
      1.采用POST请求,增加攻击的难度.用户点击一个链接就可以发起GET类型的请求。而POST请求相对比较难,攻击者往往需要借助javascript才能实现
      2.对请求进行认证,确保该请求确实是用户本人填写表单并提交的,而不是第三者伪造的.具体可以在会话中增加token,确保看到信息和提交信息的是同一个人

四.Http Heads攻击

凡是用浏览器查看任何WEB网站,无论你的WEB网站采用何种技术和框架,都用到了HTTP协议.HTTP协议在Response header和content之间,有一个空行,即两组CRLF(0x0D 0A)字符。这个空行标志着headers的结束和content的开始。“聪明”的攻击者可以利用这一点。只要攻击者有办法将任意字符“注入”到headers中,这种攻击就可以发生

以登陆为例:有这样一个url:

http://localhost/login?page=http%3A%2F%2Flocalhost%2Findex

当登录成功以后,需要重定向回page参数所指定的页面。下面是重定向发生时的response headers.

HTTP/1.1 302 Moved Temporarily
Date: Tue, 17 Aug 2010 20:00:29 GMT
Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Location: http://localhost/index

假如把URL修改一下,变成这个样子:

http://localhost/login?page=http%3A%2F%2Flocalhost%2Fcheckout%0D%0A%0D%0A%3Cscript%3Ealert%28%27hello%27%29%3C%2Fscript%3E

那么重定向发生时的reponse会变成下面的样子:
HTTP/1.1 302 Moved Temporarily
Date: Tue, 17 Aug 2010 20:00:29 GMT
Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Location: http://localhost/checkout<CRLF>
<CRLF>
<script>alert('hello')</script>

这个页面可能会意外地执行隐藏在URL中的javascript。类似的情况不仅发生在重定向(Location header)上,也有可能发生在其它headers中,如Set-Cookie header。这种攻击如果成功的话,可以做很多事,例如:执行脚本、设置额外的cookie(<CRLF>Set-Cookie: evil=value)等。
     避免这种攻击的方法,就是过滤所有的response headers,除去header中出现的非法字符,尤其是CRLF。

服务器一般会限制request headers的大小。例如Apache server默认限制request header为8K。如果超过8K,Aapche Server将会返回400 Bad Request响应:
      对于大多数情况,8K是足够大的。假设应用程序把用户输入的某内容保存在cookie中,就有可能超过8K.攻击者把超过8k的header链接发给受害者,就会被服务器拒绝访问.解决办法就是检查cookie的大小,限制新cookie的总大写,减少因header过大而产生的拒绝访问攻击

五.Cookie攻击

通过Java Script非常容易访问到当前网站的cookie。你可以打开任何网站,然后在浏览器地址栏中输入:javascript:alert(doucment.cookie),立刻就可以看到当前站点的cookie(如果有的话)。攻击者可以利用这个特性来取得你的关键信息。例如,和XSS攻击相配合,攻击者在你的浏览器上执行特定的Java Script脚本,取得你的cookie。假设这个网站仅依赖cookie来验证用户身份,那么攻击者就可以假冒你的身份来做一些事情。
      现在多数浏览器都支持在cookie上打上HttpOnly的标记,凡有这个标志的cookie就无法通过Java Script来取得,如果能在关键cookie上打上这个标记,就会大大增强cookie的安全性

六.重定向攻击
    一种常用的攻击手段是“钓鱼”。钓鱼攻击者,通常会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信任、窃取用户资料的目的。为防止这种行为,我们必须对所有的重定向操作进行审核,以避免重定向到一个危险的地方.常见解决方案是白名单,将合法的要重定向的url加到白名单中,非白名单上的域名重定向时拒之,第二种解决方案是重定向token,在合法的url上加上token,重定向时进行验证.

七.上传文件攻击
    1.文件名攻击,上传的文件采用上传之前的文件名,可能造成:客户端和服务端字符码不兼容,导致文件名乱码问题;文件名包含脚本,从而造成攻击.

2.文件后缀攻击.上传的文件的后缀可能是exe可执行程序,js脚本等文件,这些程序可能被执行于受害者的客户端,甚至可能执行于服务器上.因此我们必须过滤文件名后缀,排除那些不被许可的文件名后缀.

3.文件内容攻击.IE6有一个很严重的问题 , 它不信任服务器所发送的content type,而是自动根据文件内容来识别文件的类型,并根据所识别的类型来显示或执行文件.如果上传一个gif文件,在文件末尾放一段js攻击脚本,就有可能被执行.这种攻击,它的文件名和content type看起来都是合法的gif图片,然而其内容却包含脚本,这样的攻击无法用文件名过滤来排除,而是必须扫描其文件内容,才能识别。

WEB网站常见受攻击方式及解决办法相关推荐

  1. php网站实战,PHP实战之WEB网站常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法 跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是最常见 ...

  2. 浅谈常用的几种web攻击方式以及解决办法

    身在互联网的时候,web在给我们带来便利的同时,有些人也在盯着这些便利,因此出现了攻击网站的现象.所以我们在开发的时候,要注意这些容易被攻击的地方,以及做好防御的措施,下面将介绍一些这些 常见的攻击手 ...

  3. 前端 web端常见的攻击有那几种类型 网站瘫痪 崩溃的原因

    前端 web端常见的攻击有那几种类型 文章目录 前端 web端常见的攻击有那几种类型 dos攻击和ddos攻击 dos攻击的原理 ddos攻击 dos攻击的类型 CSRF攻击 CSRF防御 XXS攻击 ...

  4. web 常见的攻击方式

    文章目录 web常见的攻击方式有哪些?如何防御? web攻击是什么? XSS CSRF SQL注入 web常见的攻击方式有哪些?如何防御? web攻击是什么? Web攻击(WebAttack)是针对用 ...

  5. web常见的攻击方式(WebAttack)及如何防御

    web常见的攻击方式有哪些?如何防御? 面试官:web常见的攻击方式有哪些?如何防御? 一.是什么 Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为 如植入恶意代码, ...

  6. 网络安全 -- 常见的攻击方式和防守

    网络安全 – 常见的攻击方式和防守 一 . 网页中出现黑链 特点: 隐藏,不易发现,字体大小是0,表面上看不出来,代码层面可以查出来,也可能极限偏移,颜色一致 表现: 多表现为非法植入链接,一般点击会 ...

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

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

  8. 网站服务器的解决方案有,Web网站服务器DDOS攻击的解决方案

    Web网站服务器DDOS攻击的解决方案,有需要了解的朋友可参考一下,这里我们只介绍免费的防ddos攻击的解决办法. 1.  服务器端分析方法 (1)SYNFlood攻击判定 A:网上邻居->右键 ...

  9. XSS攻击,常见的攻击方式之一,使用JS脚步注入目标网页

    XSS攻击 中文名为跨站及脚本攻击,只要指使用JavaScript完成恶意的攻击行为. 是常见的攻击方式之一,操作也比较简单. 一.攻击方式 将JavaScript代码注入到网页中,并由浏览器运行该J ...

最新文章

  1. 回收mysql表碎片_MySQL表碎片整理
  2. MATLAB读取JSON数据(使用JSONlab工具箱)
  3. PostgreSQL-PL/pgSQL
  4. Java设计模式笔记(3)抽象工厂模式
  5. 【Antlr】Antlr语法设计
  6. Linux Shell笔记1 shell编程基础
  7. 推算周期软件有哪些,推算周期软件怎么用
  8. 发电机机房设计规范_柴油发电机房设计规范.docx
  9. Window open使用教程
  10. 华为主题包hwt下载_华为主题开发工具
  11. c语言 统计素数并求和
  12. 80端口为什么要备案_搞网站的你,不了解一下共享虚拟主机和备案问题
  13. 17个好用免费的ftp软件工具推荐,支持中文
  14. ThinkPad安装ALPS驱动后任然关闭触摸板失败的解决方法
  15. 人工智能300年!LSTM之父万字长文:详解现代AI和深度学习发展史
  16. 2021-2027全球及中国个人防护纺织品行业研究及十四五规划分析报告
  17. 公文管理系统案例展示
  18. 网红为什么能增加ROI?什么样的网红才能增加ROI
  19. EVE-ng模拟器安装教程和使用教程
  20. 接入Apple Pay流程

热门文章

  1. 案例:EVE和ENSP对接LLDP协议
  2. Arduino输入0/1控制步进电机正反转一定行程
  3. DSP 2812: 使用C++封装定时器及应用举例
  4. ISO27001电脑硬性要求。
  5. imap服务器收缓存pst文件夹,修改Outlook 2013 默认数据文件(OST/PST/Default)的位置
  6. Tensorflow2.0泰坦尼克数据集的python分析以及离散化数据处理(含数据集下载地址)
  7. Zebra-打印特殊字符
  8. 实现哈夫曼编码(C语言)
  9. GraphCut、最大流最小割定理
  10. iOS更改app项目的名字