首页 > 网站建设 >

网站被xxs、SQL注入攻击的两种防御方法

发布时间:2018-11-14 作者:深圳网站建设

网站被xxs、SQL注入攻击的两种防御方法
  从互联网诞生起,安全威胁就一直伴随着网站的发展,各种Web攻击和信息泄露也从未停止。前几年中国互联网领域爆出两桩比较大的安全事故,一桩是新浪微博遭xss攻击,另桩是以CSDN为代表的多个网站泄露用户密码和个人信息。特别是后者,因为影响人群广泛,部分受影响网站涉及用户实体资产和交易安全,一时成为舆论焦点。深圳网站建设公司与各位一起回顾一下这两起事故:
  某年6月28日,许多微博用户发现自己“中毒”,自动关注了个叫hellosamv的用户,并发布含有病毒的微博,粉丝点击后微博再度扩散,短时间内大量用户中招,数小时后新浪微博修复漏洞。
  某年12月.网上有人发布消息称CSDN网站600万用户资料和密码被泄露,很快该消息得到CSDN官方承认,紧接着,天涯社区、人人网等多个重要网站被报告泄露用户数据。
  那么新浪微博是如何被攻击的?CSDN的密码为何会泄露?如何防护网站免遭攻击,保护好用户的敏感信息呢?有没有百毒不侵、固若金汤的网站呢?答案是肯定的。
一、高安全网站建设知识:道高一尺魔高一丈的网站应用攻击与防御
  攻击新浪微博的手段被称作xss攻击,它和SQL注入攻击构成网站应用攻击最主要的两种手段.全球大约70%的Web应用攻击部来自xss攻击和SQL注入攻击。此外,常用的Web应用还包括CSRF、Session劫持等手段。
1.XSS攻击
  xss攻击即跨站点脚本攻击(Cross Site Script),指黑客通过篡改网页.注入恶意HTML脚本.在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。
  常见的xss攻击类型有两种,一种是反射型,攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的,如图8.1所示。上文提到的新浪微博攻击就是种反射型xss攻击。攻击者发布的微博中有个含有恶意脚本的URL(在实际应用中,该脚本在攻击者自己的服务器www. 2kt. cn,URL中包含脚本的链接),用户点击该URL,脚本会自动关注攻击者的新浪微博ID,发布含有恶意脚本URL的微博,攻击就被扩散了。
网站建设安全经验示意图8.1反射型xss攻击
  这次攻击还只是次恶作剧而已,现实中,攻击者可以采用xss攻击,偷取用户Cookie、密码等重要数据,进而伪造交易、盗窃用户财产、窃取情报。
  另外一种xss攻击是持久型xss攻击,黑客提交含有恶意脚本的请求,保存在被攻击的Web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的,如图8.2所示。此种攻击经常使用在论坛,博客等Web应用中。
网站建设安全经验知识示意图8.2持久型xss攻击
  xss攻击相对而言是一种“古老”的攻击手段,却又历久弥新,不断变化出新的攻击花样,许多以前认为不可能用来攻击的漏洞也逐渐被攻击者利用。因此xss防攻击电是非常复杂的。主要手段有如下两种。
(1)消毒
  xss攻击者一般都是通过在请求中嵌入恶意脚本达到攻击的目的,这些脚本是般用户输入中不使用的,如果进行过滤和消毒处理,即对某些html危险字符转义,如“>”转义为“&gt”、“<””转义为“&lt”等,就可以防止大部分攻击。为了避免对不必要的内容错误转义,如“3<5”中的“<”需要进行文本匹配后再转义,如“<img src-”这样的上下文中的“<”才转义。事实上,消毒几乎是所有网站最必备的xss防攻击手段。
(2)HttpOnly
  最早由微软提出,即浏览器禁止页面JavaScript访问带有HttpOnly属性的Cookie。HttpOnly并不是直接对抗xss攻击的,而是防止xss攻击者窃取Cookie。对于存放敏感信息的Cookie,如用户认证信息等,可通过对该Cookie添加HttpOnly属性,避免被攻击脚本窃取。
二、网站建设高安全知识之:注入攻击
  注入攻击主要有两种形式,SQL注入攻击和os注入攻击。SQL注入攻击的原理如图8-3所示。攻击者在HTTP请求中注入恶意SQL命令(drop table users,),服务器用请求参数构造数据库SQL命令时,恶意SQL被起构造,并在数据库中执行。
网站建设安全经验知识示意图8-3 SQL注入攻击
  SQL注入攻击需要攻击者对数据库结构有所了解才能进行,攻击者获取数据库表结构信息的手段有如下几种。
1.开源
  如果网站采用开源软件搭建,如用Discuz!搭建论坛网站,那么网站数据库结构就是公开的,攻击者可以直接获得错误回显。
  如果网站开启错误回显,即服务器内部500错误会显示到浏览器上。攻击者通过故意构造非法参数.使服务端异常信息输出到浏览器端为攻击猜测数据库表结构提供了便利。
2.盲注
  网站关闭错误回显,攻击者根据页面变化情况判断SQL语句的执行情况,据此猜测数据库表结构,此种方式攻击难度较大,防御SQL注入攻击首先要避免被攻击者猜测到表名等数据库表结构信息,此外还可以采用如下方式
(1)消毒
  和防xss攻击一样,请求参数消毒是种比较简单粗暴又有效的手段。通过正则匹配,过滤请求数据中可能注入的SQL,如“dropt able”、“b(9:update\b.*?\bset ldelete\b\W*?\bfrom)、b”等。
(2)参数绑定
  使用预编译手段,绑定参数是最好的防SQL注入方法。目前许多数据访问层框架,如IBatis.Hibernate等.都实现SQL预编译和参数绑定.攻击者的恶意SQL会被当做SQL的参数,而不是SQL命令被执行。
  除了SQL注入,攻击者还根据具体应用,注入os命令、编程语言代码等,利用程序漏洞,达到攻击目的。好了,网站建设公司本文关于网站防御xxs、SQL注入攻击的两种防御方法本文就分享到这里,谢谢关注,博纳网络编辑整理。
文章标题:网站被xxs、SQL注入攻击的两种防御方法
本文地址:https://www.198bona.com/news/1717.html
如果您觉得案例还不错请帮忙分享:

网站建设

网络推广

解决方案

域名主机

建站行业资讯