浅谈数据库安全与python编程技术.doc
软件学院大作业任务书课程名称数据库工程实训题目浅谈数据库安全与基于PYTHON的SQL注入完成时间2015年6月10日大作业的要求和内容(包括实验目的、实验内容、作业要求、作业格式等)实验目的1、检验数据库安全的基本知识点的掌握,包括数据库登陆管理、授权、角色、审核;通讯加密SSL;SQL注入攻击。2、掌握PYTHON的基本编程技巧,以及与SQLSERVER数据库的连接方法,包括PYMSSQL数据访问技术,FLASK网关技术。3、运用已学的安全技术,来分析安全架构,和数据库安全问题。实验内容1、账户安全管理举例账户安全管理策略2、账户行为审计在SQLSERVER中开启审计功能,并且在远端登录时,观察审计结果。3、客户端加密通讯SSL开启客户端的加密通讯功能,观察传送的用户名和密码等数据。4、防止SQL注入攻击用FLASK建立一个简单的测试页面,用PYMSSQL模块测试SQL注入攻击的防范作业要求该大作业每人一份,重点描述整个项目的总体框架,以及对PYTHON和SQLSERVER这两种工具的认识体会。总体部分包括1、介绍2、数据库安全技术介绍和理解3、账户安全管理4、账户行为审计5、客户端加密通讯SSL6、防止SQL注入攻击7、总结作业格式按照学院要求的大作业格式,要求封面,和正文两部分,封面包括班级、学号、姓名、指导老师等信息。正文字体为五号宋体,标题为四号宋体。教师小结成绩教师签名教研部负责人学生姓名仁晓琴目录摘要1一、数据库安全技术111数据库存在的威胁与研究现状1111篡改1112损坏2113窃取212数据库安全的研究现状2121数据库安全的具体标准213数据库安全策略3131最小权利法则3132账号安全法则3133内容加密3134存取控制3145系统补丁3二、账户安全管理与行为审计421账户安全管理4211认证4212授权认可4213加锁4214认证操作实例422SQLSERVER审计机制7221TCSEC的安全等级划分7222SQLSERVER标准审计级别7223SQLSERVERC2级审计的启用7三、客户端加密通讯SSL1031SSL基本原理10四、防范SQL注入攻击1041SQL注入技术1042SQL注入攻击的原理与实现11421SQL注入攻击基本原理11422SQL注入攻击的常用途径1242SQL注入攻击防范方法1243基于PYTHON的简单案例13五、总结与体会18文献参考181浅谈数据库安全与基于PYTHON的SQL注入攻击摘要随着计算机技术和通讯技术的发展,数据库系统的安全正面临着新的问题和挑战。本文阐述了数据库妥全的研究现状和具体标准,从管理的角度讨论了威胁数据安全的潜在因素及防范措施,在此基础上,网络服务构架技术的应用被普遍采用,许多该类型的应用程序在设计与开发时没有充分考虑到数据合法性校验问题,因此使其在应用中存在安全隐患。在横向比较SQL注入攻击模式的基础之上,分析了SQL注入攻击的特点、原理,并对常用注入途径进行了总结。提出在主动式防范模型的基础上,使用输入验证、SQLSERVER防御以及使用存储过程替代参数化查询相结合的形式构建出一种有效防范SQL注入攻击的思路和方法。并用PYMSSQL模块测试表明该防范模型具有较高的实用性和安全性。关键词数据库安全,FLASK网关技术,SQL注入攻击,SSL,PYMSSQL1、数据库安全技术现在,随着计算机技术和通讯技术的发展,计算机已经应用在人们日常生活的各个方面,它已经成为推动人类社会发展的一个重要工具。虽然计算机给人们的生产和生活带来了方便,但是伴随而来的是出现了一系列亟待解决的问题,数据库系统的安全就是其中的一个重要组成部分。11数据库存在的威胁与研究现状数据库的安全性是指数据库的任何部分都不允许受到恶意侵害,或未经授权的存取与修改。数据库是信息系统的核心部分,有价值的数据都存放在其中,这些共享的数据源,既要面对必须得可用性需求,又要面对被篡改、损坏和被盗取的威胁。通常情况下,数据库的破坏来自下列四个方而1系统故障;2并发存取而引起的数据的不一致;3转存或更新数据库的数据有错误,封信事务未遵守保持数据一致性的原则;4人为的破坏,例如数据库被非法访问,甚至被篡改或破坏。发现威胁数据库安全的源和检查相应的措施是数据库安全性问题的两个方面,二者缺一可。安全本身是从不断采取管理措施过程中得到的。不过,安全,甚至用繁琐的措施加以保证的安全,也很有可能由于小小的疏忽而失去,那是经常发生的事。在关注安全问题的同时,首先要认识到威胁安全因素的客观存在,遗憾的是,大多数的威胁源是看不到的,直至一切都太迟了。为了防患于未然,必须在威胁成为现实之前,对造成数据库安全威胁要有一个清晰的认识。111篡改篡改是指对数据库中的数据未经授权进行修改,使其失去了原来的真实性。篡改的形式具有多样性,但是有一点是共同的,即造成影响之前很难发现它。篡改是由人为因素而产生的,一般来说,发生这种人为篡改有以下原因个人利益驱动、隐藏证据、恶作剧、无知2。112损坏计算机信息系统中数据的真正丢失是数据库安全性所面临的一个客观存在的威胁。其表现的形式是表和整个数据库或部分被删除或破坏。产生损坏的原因有破坏、恶作剧、病毒。破坏往往都带有明显的作案动机,解决起来相对比较困难。之所以难,是因为这些破坏的人到底是来自内部还是外部时间很难认识,很难说得清楚。恶作剧往往处于好奇给数据库造成了破坏。这些人通过某种方式访问数据库的程序,哪怕对数据作级小的修改,都可能使全部数据变得可读。计算机病毒任信息系统中能感染的范围非常大,因此,采取必要有效的措施进行防护很必要。最简单的办法是限制来自外部的数据源、磁盘或在线服务的访问,并采用性能好的病毒检查程序对所有引入的数据进行强制性检查。113窃取窃取一般是对敏感数据的访问完成的。窃取的方法除了将数据拷贝到软盘之类的可移动的介质上外,也可以把数据打印后取走。窃取的主要原因有工商业间谍、将要离开的员工、被窃取的数据可能比想象中的更有价值。12数据库安全的研究现状在国际上,有关数据库系统的安全性的研究起步的比较早,很多国家的政府机关和一些大型企业的科研部门都投资了很多的金钱,开展了许多的实验和研讨,并且也已经获得了比较好的研究成果。从1970年开始,美国的国防部就开展了有关数据库系统的多级安全机制的研究工作,这项研究内容主要有数据库系统安全性的需求、建立安全模型、数据仓库的保密、数据库系统的推理控制等。另外在国际上也产生了一批安全性级别比较高的开发软件如SYBASE,ORACLE等的安全级别都达到了B级。1985年12月,美国国防部依据军队对计算机系统的安全需求,制定了可信计算机系统安全评估标准TCSEC,这个评估标准包括4个等级、7个级别。在国内,越来越多的人也已经认识到了数据库系统安全的重要性,也纷纷的开展了有关数据库系统安全的科学研究。现在我国的数据库生产商都在自己所生产的软件产品中增加了数据库安全性方面的功能,如安全控制策略、数据库的备份与数据库的恢复,审计等。从2001年开始,我国开始执行计算机信息安全保护等级划分准则。在这个准则中,将数据库系统的安全级别划分为5个等级。虽然我国对数据库安全的研究取得了一定的成就,但是由于我国开