基于高校Web应用中SQL注入攻击与防范研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:jxc678
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:该文介绍了Web应用中SQL注入 攻击的原理、SQL注入攻击带来的危害,并针对如何防范SQL注入攻击提出了有效的方法,以降低Web应用受到SQL注入攻击的风险,更好地保护高校中Web应用的安全和使用。
  关键词:Web应用;SQL注入;注入攻击;注入防范
  中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)29-0040-02
  随着高校信息化、数字化校园建设的不断推进,高校校园网中部署的各种Web门户网站及教学应用平台数量逐渐增多,由于开发这些应用的程序员水平和经验参差不齐,其中一部分程序员在编写相应的代码时没有对用户输入的数据进行合法性检查,导致一些Web应用程序存在SQL注入安全漏洞,容易受到来自互联网的SQL注入攻击,对校园网中各Web应用系统数据信息安全构成重大威胁。本文对Web應用中常见的SQL攻击原理及防范技术进行分析研究。
  1SOL注入攻击原理
  SQU结构化查询语言)是一种数据库查询语言,所谓的SQL注入攻击就是专门对Web应用后台数据库的一种攻击行为。攻击者利用搜索引擎在Web应用系统中通过手工或者SQL注入工具进行测试,寻找Web应用中存在的SQL注入漏洞及可注入点,并判断其数据库类型,其次在构造一些特殊字符串通过网页或其他方式传递给Web应用系统,从而实现对Web应用系统数据库的非法访问或操作。SQL注入攻击的产生主要是因为某些Web应用系统数据库的外部接口没有对用户输入的数据进行有效验证。比如先前互联网上出现的很多网站用户数据泄露大多都是通过这种方式实现的。
  下面以一个Web应用系统的登录页面为例来阐述SQL注入攻击原理,一般的Web应用系统的登录验证页面都有user-name和password两个参数用于输入登录系统的用户名和密码,系统通过查找数据库中login表里存放的数据来比对用户输入的用户名和密码进行授权操作。常见的用于验证用户登录身份合法的SQL语句为:
  select count(*)from login where username=’username’andpassword=password’
  假设正确的系统管理员用户名和密码分别为’ad-min’,’admin888’,那么传输到后台用于验证的SQL语句为:
  select count(*)from login where usertmme=’admin’and pass-word=’admin888’
  通过上述的语句可以看到该方法中的usernalne和pass-word的值是没有经过任何验证,直接将前端用户输入的数据以字符串的形式拼接在一起形成SQL验证语句,这样的语句存在注入漏洞,且风险非常大。下面就是一个针对绕过这种验证方式以admin身份登录系统的SQL语句:
  select count(*)from login where username=’admin’--andpassword=’23456’
  在上述语句中进行了两个判断,即username=’admin’和password=’123456’,当两个都为“真”时,整个语句结果就为“真”,但上述输入的密码是’123456’显然是不正确的,因为使用了注释符“--”,在注释符之后的语句将忽略不被执行,即se-lect count(*)from login where username=’admin’结果肯定为“真”,从而通过验证达到登录系统的目的。
  2SQL注入攻击的危害
  SQL注入攻击的主要目的不是Web应用系统的服务器,而是想得到Web应用系统最高的管理员权限及数据库中的重要数据。攻击者发现Web应用中的漏洞,进行SQL注入攻击,一旦攻击成功,拿到权限便会给Web应用系统中数据信息的安全带来危害。尤其是在高校中,带来的危害主要有以下四点:
  1)在未授权的情况下获得高校校园网中各种Web应用系统权限,非法读取、篡改、添加、删除数据库中的数据;
  2)非法盗取高校校园网中各种Web应用系统数据库中的重要数据及师生个人信息等敏感信息以获取利益;
  3)修改学校门户网站及各种Web应用系统网页内容,发布虚假广告信息和挂马等;
  4)上传木马病毒或者webshell,留下后门,进而控制相应的Web应用服务器。
  3高校web应用中如何防范sQL注入攻击
  3.1从Web应用系统程序本身上进行防范
  1)数据库权限进行分级控制。各个级别的用户只给访问数据库的web应用功能所需的最低权限,只能对授权给自己的数据进行查询、增删等操作,防止未授权用户对数据库非法操作。
  2)用户输入的数据进行有效性验证。比如对接收的数据类型有明确要求或限制的,要进行数据类型有效验证,如数值型、日期型、英文或数字等;对数据长度有限制的,如只允许输入10字符,那么就要严格控制输入的内容在10个字符以内,因为一般SQL注入攻击的语句是有一定的长度的,通过这样限制后会增加注入攻击的难度。
  3)屏蔽Web应用系统错误提示信息返回页面。一般攻击者会通过网页提交一些攻击代码后,根据服务器返回的错误提示信息,获取一些关于Web应用系统的有用信息,为下一步攻击做准备,因此在程序开发中应通过自定义错误提示信息页或屏蔽错误提示信息页来防止攻击者通过这种方式获取有用信息。
  4)删除Web应用系统中一些不安全和不必要的存储过程。攻击者SQL注入攻击成功后,变会利用xp_cmdshell之类的存储扩展来获取服务器权限。
  5)过滤掉所有敏感字符串及单引号,来防止攻击者非法登陆。
  6)对数据库中的重要信息进行加密,提高数据的安全性。
  3.2从Web应用系统管理上进行防范
  1)系统管理员应加强自我学习,了解及掌握相关领域安全方面的最新消息,及时更新相应漏洞和补丁。
  2)使用漏洞扫描工具,扫描Web应用系统中的SQL注入漏洞,做到及时更新,提前防范。
  3)安装安全软件和Web应用防火墙,通过它们对服务器和Web应用进行实时监控,能够及时屏蔽和阻止外来的攻击。
  4结束语
  随着互联网技术的发展,Web应用越来越多,一些新型的SQL注入攻击方法也随之诞生,对于Web应用中SQL注入攻击的防范不能止于眼前。因此,在应用开发时就应尽量采用先进的技术,后期在使用时还应该综合运用安全软件、Web防火墙、漏洞扫描等相关技术进行辅助防范,才能将SQL注入攻击的风险降至最低,以保证Web应用系统的安全。
其他文献
女儿的老师布置了一个作业,要求制作一个古诗的PPT,可是女儿找不到相关的素材,要我帮忙,通过几个软件,我轻松获得了所需的素材。
摘要:随着计算机和通讯技术的高速发展,网络的开放性、互连性、共享性程度的扩大,工作越来越依赖信息和网络技术来支持。但随之而来的威胁也越来越多,而想只依赖安全产品硬件软件就想解决所有的安全问题是不现实的,安全和管理是密不可分的缺一不可,需要从网络建设初期就考虑安全,运行为维护管理的过程尤其重要,其中层次化安全管理和保障合法的身份验证和访问授权是最基本的安全管理办法。  关键词:用户管理;内网安全;访
迅雷下载器是大家再也熟悉不过的,可以说是网络生活的必备神器。在使用过程中常会出现没有下载资源、无法远程下载资源和影响上网浏览等小插曲,有了下文的一些小技巧,迅雷下载仍然能继续“任性”。  一、无下载资源,试下账号共享  网上有很多有用的ed2k格式资料,用迅雷进行下载时,下载进度总是为0,无法下载该资源。这时,不妨试试账号共享器。  先下载一个账号分享器工具,双击打开该工具。接着,单击窗口上方的“
分析了学院开设Oracle数据库系统课程以来,教学过程中存在的突出问题,阐述了课题组为解决这些问题在设计随堂案例时采用的原则、思路,并以一个案例的部分详细内容加以说明,该