首页 > 知识点讲解
       SQL注入漏洞分析与防护
知识路径: > 网络信息安全概述 > 网络信息安全目标与功能 > 网站安全需求分析与安全保护工程 > Web应用漏洞分析与防护 > Web应用漏洞防护 > 
考试要求:熟悉      相关知识点:3个      
        SQL注入攻击(SQL Injection Attack)主要指利用连接后台数据库中的Web应用程序漏洞,插入恶意SQL语句,以实现对数据库的攻击。例如,假设某网站有如下服务:
        
        其后台对应的Web程序如下:
        
        正常情况下,数据库对外部查询请求对应的执行程序是:
        
        此时,查询用户只能得到food相关的信息。但是,如果一个恶意的用户提交如下请求:
        
        这时候,数据库对外部查询请求对应的执行程序是:
        
        查询用户通过该SQL语句不仅得到food的相关信息,而且得到product表的所有信息。
        SQL注入攻击的主要特点是攻击者通过利用Web应用程序中未对程序变量进行安全过滤处理,在输入程序变量的参数时,故意构造特殊的SQL语句,让后台的数据库执行非法指令,从而可以操控数据库内容,达到攻击目的。SQL注入攻击的防范方法如下:
        (1)对应用程序输入进行安全过滤。对网站应用程序的输入变量进行安全过滤与参数验证,禁止一切非预期的参数传递到后台数据库服务器。安全过滤方法有两种:
        . 建立程序输入黑名单。拒绝已知的恶意输入,如insert、update、delete、or、drop等。
        . 建立程序输入白名单。只接收已知的正常输入,如在一些表单中允许数字和大、小写字母等。
        (2)设置应用程序最小化权限。SQL注入攻击用Web应用程序权限对数据库进行操作,如果最小化设置数据库和Web应用程序的执行权限,就可以阻止非法SQL执行,减少攻击的破坏影响。同时,对于Web应用程序与数据库的连接,建立独立的账号,使用最小权限执行数据库操作,避免应用程序以DBA身份与数据库连接,以免给攻击者可乘之机。
        (3)屏蔽应用程序错误提示信息。SQL注入攻击是一种尝试攻击技术,攻击者会利用SQL执行尝试反馈信息来推断数据库的结构以及有价值的信息。在默认情况下,数据库查询和页面执行中出错的时候,用户浏览器上将会出现错误信息,这些信息包括了ODBC类型、数据库引擎、数据库名称、表名称、变量、错误类型等诸多内容,如下图所示。
        
        应用程序错误信息显示示意图
        因此,针对这种情况,应用程序应屏蔽掉错误信息显示到浏览器上,从而可以避免入侵者获取数据库内部信息。
        (4)对开源Web应用程序做安全适应性改造。利用开源网站应用程序进行安全增强,避免攻击者无须猜测就可以知道网站后台数据库的类型以及各种表结构,进而较容易地进行SQL注入攻击。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有