SQL注入攻击与防范
刘佳
(武警指挥学院训练部模拟中心。天津300350)
摘要:SQL注入攻击是对数据库进行攻击的常用手段之一。伴随着网络的普及应用,基于B/s模式的Web应用程序也得到了广泛的应用,但这些程序的水平却参差不齐,相当一部分开发人员在编写代码的时候没有对用户数据的合法性进行判断,使程序存在安全隐患。SQL注入攻击正是利用了这一漏洞对后台数据库进行攻击的。
关键词:SQL注入攻击;防范
1SQL注入攻击的原理注入
SQL注入攻击就是向服务器端提交一段事先准备好的数据,拼凑出攻击者想要的SQL语句,以改变程序预期的执行结果。
存在SQL注入漏洞的地方都是程序中需要根据客户端提交的数据来构造SQL语句的地方,也就是说只要程序中存在“客户端数据替换服务端预定义变量”的地方就有可能被注入。
由于服务器端程序通常采用拼凑SQL语句的方式,从而使得攻击者有机会在提交的数据中包含SQL关键字或者运算符,来构造想要的语句。
假设服务器端有这样一条SQL语句:
dimclient_titleaginteger=Request.QueryString(”tide”)
strsql=”updatebooksettide=…&client_ritle&…whereid=12”
客户端则通过http://websitename/update.aspx?title=sqlinjection的形式向服务器提交用户数据。
开发人员的本意是想通过用户提交的数据“client_title”来更新表“book”中“id”为12的记录中的“title”字段的内容。在正常情况下,这样做不会有任何问题。但是如果攻击者提交http://websitenaradupdate.aspx?title=sqlinjecfion’一,那么sql语句将被拼凑为:
updatebooksettitle=‘sqlinjection’。
可以看到,“where”子句被61—99注释掉了,“book”表中“title”列的所有内容都将被更新为“sqlinjection”。
2SQL注入攻击的危害
SQL注入攻击的目的就是改变SQL语句预期的执行结果。上面的例子就说明了SQL注入攻击的危害一对数据库进行了预期以外的操作,然而这还不是最糟糕的情形。请看下面的例
库的基础上,系统主要包括以下功能:
(1)查询断道位置根据高速公路发生断道的里程,查询其
具体所处的位置,以及所对应的高速公路出入口;
(2)查询抢险预案根据发生灾害的地点,查询抢险预案;
(3)查询抢险救援物资根据所需要的物资进行查询物资
储备点;
(4)最短路径分析在抢险救援物资备料点和高速公路断
道处出一条最短路线,以进行物资和人员的调度。
根据上述功能,假设在米易滑坡处(K108+400)发生灾害,造
成高速公路断道,要进行抢险救援。
首先,查明断道点的位置,使用根据里程查询线路位置工具
(见图2左),查出该段前后的高速公路有两个出入口:米易互通左.未断道情况右。高速公路出入口断道
式立交和垭口互通式立交。再查该段高速公路附近的抢险物图3最小路径查询结果
资储备点(见图2右o4结束语
应用GIS技术建立山区高速公路抢险救援管理系统具有重
要的应用价值,为灾害发生后的抢险救援决策的优化提供了决
策支持,并可以在此基础上进行更深入的分析应用,为山区高速
公路的运营救灾提供科学的手段。
左-断道位置查询结果右。备料点位置查询结呆
图2查询位置示意图
最后查最小路径(见图3左),如果在最小路径的线路上也出现了断道情况,则需要在断道处设置障碍物,再进行分析(见图3右)。
2009年第6期参考文献:
『11蒋忠信,陈光哦,吴宗俭等.中国山区道路灾害防治【M】.重庆:重庆大学出版社,1994.
【2l王卫东,刘武成.基于GIS的公路地质灾害信息管理与决策支持系统01.中南大学学报(自然科学版),2003,34(3):302-305.
【3】金晓媚.刘金韬.地质灾害管理信息系统卟灾害学,1999,14(2):78-81.【4】李发斌.崔鹏,周爱霞.KS和GIS在滑坡泥石流防灾减灾中的应用D】.
灾害学,2004。19(4):18—24.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。