【PHP开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了PHP开源代码-【-精品】-浅析SQL注入攻击及防范方法 - 技术总结的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
2010年第10期科技经济市场SQL注入攻击是目前网络攻击的主要手段之一。
经典防火墙不能对SQL注入漏洞进行有效防范防火墙为了使合法用户运行网络应用程序访问服务器端数据必须允许从Internet到WEB服务器的正向连接。
一旦网络应用程序有注入漏洞攻击者就可以直接访问数据库甚至能够获得数据库所在服务器的访问权。
因此在某些情况下SQL注入攻击的风险要高于其它漏洞。
本文将结合示例介绍SQL注入式攻击行为以及如何对该类型的攻击进行有效防范。
1SQL注入攻击原理和方法假设有一个对提交用户信息表单的处理程序要求根据输入的用户名和密码进行身份认证。
如果用户输入的用户名username和密码password与用户信息表users中的记录匹配则认证成功否则失败。
SQL语句如下:sql“selectfromuserswhereusername”username“andpassword”password“”如果用户输入正确的信息:username的值为liuyepassword的值为admin。
则上面的SQL语句为:selectfromuserswhereusernameliuyeandpasswordadmin则完成认证。
但是如果是攻击者输入如下的信息:username的值为lipassword的值为yor11。
则上面的SQL语句变为:selectfromuserswhereusernameliandpasswordyor11由于查询的条件恒为真结果认证也成功了。
攻击者根本没有输入正确用户名和密码却成功地进行了认证这违背了程序的功能。
究其原因就是攻击者通过提交精心构造的特殊SQL语句进行了SQL注入式攻击。
这种攻击的破坏性很严重。
攻击者甚至可以对数据库进行破坏。
如果上例中输入的username的值为lidroptableusers--Password值为y或是一个任意值。
这样SQL语句就变成:selectfromuserswhereusernamelidroptableusers--andpasswordy结果造成数据库中表users将被删除拒绝任何用户进入应用程序。
因为--号在Transact-SQL中表示注释执行时可以忽略--以后的语句号表示一个查询的结束和另一个查询的开始。
由于SQL注入式攻击是从正常的80端口访问而且表面看起来跟一般的页面访问没什么区别SQL注入攻击利用的是合法的SQL语法使这种攻击不能被防火墙检测出来具有难捕获性。
有很多程序员对它没有引起重视编写出的网站中遗留注入攻击漏洞。
2SQL注入攻击的防御方法动态网站都是带有参数的动态网页连接数据库所以有可能存在SQL注入攻击。
被SQL注入攻击的主要危害包括获取系统控制权、未经授权状况下操作数据库的数据、恶意篡改网页内容、私自添加系统账号或数据库使用者账号等等。
那么如何对SQL注入攻击进行防御首先使用安全漏洞扫描器对网站进行扫描确保网站没有任何输入过滤或其他SQL注入安全漏洞。
其次对提交内容进行有效的过滤与判断。
攻击者比较常用的技巧有使用注释符号、恒等式如11、使用union语句进行联合查询、使用insert或update语句插入或修改数据等。
此外还利用一些内置函数辅助攻击如使用phpinfo函数显示基本信息char函数规避单引号等。
而最有效的防止SQL注入攻击的方法是在
代码层就屏蔽掉不安全的script等危险字符。
对漏洞注入点相关
代码进行
代码及SQL注入关键字的过滤以规范
代码安全性。
其他防御1对用户输入验证在SQLServer数据库中有比较多的用户输入内容验证工具可以帮助管理员来对付SQL注入式攻击。
测试字符串变量的内容只接受所需的值拒绝包含二进制数据、转义序列和注释字符的输入内容。
这有助于防止脚本注入防止某些缓冲区溢出攻击。
另外在数据库对用户名和密码验证时不应该在同一句中进行并且应该采用加密技术对用户名、用户密码进行加密这样即使是入侵者获得了用户名以及密码也是一堆看不懂的乱码这样的数据对入侵者没有丝毫意义有效的防止用户名和密码的被获取。
2在服务端正式处理前对提交数据的合法性进行检查屏蔽出错信息。
不要在服务器端放置备份的文件以免受到感染或备份的文件含有漏洞造成切入点比如index1.asp、index2.asp、products1.asp等。
3养成查看日志记录。
一旦发生SQL注入在日志记录中会记录下攻击的时间和入侵的确漏洞可以使管理员急时处理。
对数据库重要的信息进行加密可采用MD5函数进行加密。
3结束语Asp易学易用它开创了非专业人员开发高水平网站的历史用户可以结合HTML网页、Asp指令和ActiveX文件建立动态、交互且高效的Web服务器应用程序。
因其数据库和Aspro下转第10页浅析SQL注入攻击及防范方法铁锐无锡商业职业技术学院江苏无锡214000摘要SQL注入攻击是一种比较常见的针对数据库的漏洞攻击方式本文对该攻击的原理和方式以及如何防御进行介绍。
关键词网站安全SQL注入数据库技术平台趤趮2010年第10期科技经济市场上接第11页脚本都在服务器运行提高了服务器的利用率但因编写者的层次和编写的规范性和周密性影响了安全性因此在编写时对常见的攻击方式注入式攻击的防范是必不可少的也是不容忽视的。
参考文献1徐鑫涛.浅析SQL注入攻击J.中国科技信息.20071:91-99.2周杨.浅议SQL注入攻击的原理及防御J.实验技术与管理20071024:85-87.重用已有应用的功能和数据资源来支持新应用的开发。
为此需要对原有的校园内各个信息系统进行数据整合并建立统一的数字化校园应用平台。
一卡通系统的设计从校园管理的需求出发以系统的功能为基本单位根据不同的模块将业务的不同层次的功能划分为不同的服务然后将这些服务作为系统组合的基本单元来构造集成整个信息平台的系统服务。
基于SOA的架构思想在基于重构的设计需求下我们设计了如图4所示的基于SOA的校园一卡通系统架构图4基于SOA的一卡通系统物理架构模型根据JavaEE分层的观点我们设计的一卡通系统从上到下分为表示层、请求处理层、ESB层服务层、数据层。
表示层位于系统的最上层为新架构的一卡通系统提供用户交互界面它由JSP、HTML等技术实现通过浏览器向用户展示。
请求处理层请求处理层位于ESB层与表示层之间负责代理表示层对服务请求和调用的逻辑与前面所述的Web层功能类似。
请求处理层通过在表示层和ESB之间引入一层服务请求的代理机制将表示层中对服务请求、调用的逻辑抽象出来作为单独的一层。
这大大简化了表示层中的业务逻辑降低了表示层的复杂性。
ESB层企业服务总线层位于请求层之下实现对下层服务的部署、配置、管理、调用和控制等功能并为客户端和服务间提供消息传递机制。
服务层ESB层之下为服务层它对业务逻辑进行封装并为ESB层提供服务调用接口。
服务层内能提供各种不同的服务。
数据层数据层完成数据的持久化功能。
它提供了数据信息和数据逻辑并为服务层提供统一的访问数据库的方式。
在一卡通系统的实现过程中我们采用JavaEE技术来构建各业务子系统。
对表示层和请求处理层采用开放源码的Struts作为一卡通系统的Web基础框架该框架符合模型-视图-控制MVC模型并且基于JavaEE和XML技术的企业级Web应用框架。
本文借助ESB
开源产品Mule来实现服务管理层的功能。
Mule是一个ESB的消息框架它是一个可升级的、高效的分配代理通过传输和消息机制可以无缝的处理服务和应用交互。
服务组件仍用EJB来实现具体的业务逻辑由EJB来处理通常需要将EJB发布为Web服务Web服务可以抽象出EJB的业务功能接口部署到企业服务总线ESB上从而构建服务组件。
在数据层上我们采用数据访问对象DataAccessObjectDAO来实现资源所需的访问机制。
DAO向使用者提供统一的API接口它将数据源的实现细节完全隐藏起来当底层数据源发生变化时只需修改DAO的实现细节而不会对使用者产生任何影响。
我们给出了校园一卡通的总体设计框架并用分层的观点叙述了每层的实现细节。
系统具体的详细设计以及编码过程鉴于文章篇幅限制在此不再赘述。
6结论一卡通系统是数字校园的基础工程是推行数字校园的有力载体。
鉴于传统一卡通系统各子系统信息资源分散、共享程度低、缺乏统一数据平台、信息标准不统一等缺陷我们用SOA服务模型对各个系统进行数据整合并建立统一的数字化校园应用平台。
SOA是下一代软件工程的主流架构将SOA思想用于校园一卡通系统的开发可以提高系统的整体质量并降低了信息系统的开发成本。
参考文献1丁洪昌.基于SOA和JavaEE架构的人力资源管理系统设计与实现J.科技资讯.20081234:147-149.2陈焰灵张艳.基于WebServices和JavaEE的SOA实现J.大众科技20105:355-47.3晋海峰.基于SOA架构机动车治安管理综合信息系统设计与实现D.南昌江西师范大学硕士学位
论文20095.4梁爱虎.SOA思想技术与系统集成应用详解M.北京电子工业出版社2007.5刘天北熊节等译.J2EE核心模式M.北京机械工业出版社2006.6张之.基于重构的轻量级SOA架构D.上海华东师范大学硕士学位
论文200711.7徐遇霄.基于Java的SOA分层研究与设计J.船舶电子工程2010306:124-129.8赵予.利用校园一卡通进行数字化校园建设的应用与实现J.信息化纵横20095:73-75.9杨志和.基于J2EE的校园一卡通系统平台J.上海电机学院学报2008111:52-55.10南昌工程学院电子校务CP/OL.http://eapp.nit.edu.cn/portal/home.domethodindex.技术平台趤趭