浅析数据库安全与Python编程技术

上传人:xmg****18 文档编号:118868850 上传时间:2019-12-27 格式:DOC 页数:22 大小:1.20MB
返回 下载 相关 举报
浅析数据库安全与Python编程技术_第1页
第1页 / 共22页
浅析数据库安全与Python编程技术_第2页
第2页 / 共22页
浅析数据库安全与Python编程技术_第3页
第3页 / 共22页
浅析数据库安全与Python编程技术_第4页
第4页 / 共22页
浅析数据库安全与Python编程技术_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《浅析数据库安全与Python编程技术》由会员分享,可在线阅读,更多相关《浅析数据库安全与Python编程技术(22页珍藏版)》请在金锄头文库上搜索。

1、word格式软件学院大作业任务书课程名称: 数据库工程实训 题 目: 浅谈数据库安全与基于Python的SQL注入 完成时间: 2015年6月10日 大作业的要求和内容:(包括实验目的、实验内容、作业要求、作业格式等)实验目的:1、检验数据库安全的基本知识点的掌握,包括数据库登陆管理、授权、角色、审核;通讯加密SSL;SQL注入攻击。2、掌握PYTHON的基本编程技巧,以及与SQL SERVER数据库的连接方法,包括pymssql数据访问技术,flask网关技术。3、运用已学的安全技术,来分析安全架构,和数据库安全问题。 实验内容:1、账户安全管理:举例账户安全管理策略2、账户行为审计:在sq

2、l server中开启审计功能,并且在远端登录时,观察审计结果。3、客户端加密通讯SSL:开启客户端的加密通讯功能,观察传送的用户名和密码等数据。4、防止sql注入攻击:用flask建立一个简单的测试页面,用pymssql模块测试sql注入攻击的防范作业要求:该大作业每人一份,重点描述整个项目的总体框架,以及对python和SQLSERVER 这两种工具的认识体会。总体部分包括:1、 介绍2、 数据库安全技术介绍和理解3、 账户安全管理4、 账户行为审计5、 客户端加密通讯SSL6、 防止sql注入攻击7、 总结 作业格式:按照学院要求的大作业格式,要求封面,和正文两部分,封面包括班级、学号、

3、姓名、指导老师等信息。正文字体为五号宋体,标题为四号宋体。 教师小结:成绩: 教 师 签 名: 教研部负责人: 学生姓名: 仁晓琴 目 录摘要- 1 -一、 数据库安全技术- 1 -1.1 数据库存在的威胁与研究现状- 1 -1.1.1 篡改- 1 -1.1.2 损坏- 2 -1.1.3 窃取- 2 -1.2 数据库安全的研究现状- 2 -1.2.1 数据库安全的具体标准- 2 -1.3 数据库安全策略- 3 -1.3.1 最小权利法则- 3 -1.3.2 账号安全法则- 3 -1.3.3内容加密- 3 -1.3.4 存取控制- 3 -1.4.5 系统补丁- 3 -二、 账户安全管理与行为审计

4、- 4 -2.1 账户安全管理- 4 -2.1.1 认证- 4 -2.1.2 授权认可- 4 -2.1.3 加锁- 4 -2.1.4 认证操作实例- 4 -2.2 SQL SERVER审计机制- 7 -2.2.1 TCSEC的安全等级划分- 7 -2.2.2 SQL SERVER标准审计级别- 7 -2.2.3 SQL SERVER C2级审计的启用- 7 -三、 客户端加密通讯SSL- 10 -3.1 SSL基本原理- 10 -四、 防范sql注入攻击- 10 -4.1 SQL注入技术- 10 -4.2 SQL注入攻击的原理与实现- 11 -4.2.1 SQL注入攻击基本原理- 11 -4.

5、2.2 SQL注入攻击的常用途径- 12 -4.2 SQL注入攻击防范方法- 12 -4.3 基于Python的简单案例- 13 -五、 总结与体会- 18 -文献参考- 18 -. .浅谈数据库安全与基于Python的SQL注入攻击摘要随着计算机技术和通讯技术的发展,数据库系统的安全正面临着新的问题和挑战。本文阐述了数据库妥全的研究现状和具体标准,从管理的角度讨论了威胁数据安全的潜在因素及防范措施 ,在此基础上,网络服务构架技术的应用被普遍采用,许多该类型的应用程序在设计与开发时没有充分考虑到数据合法性校验问题,因此使其在应用中存在安全隐患。在横向比较 SQL 注入攻击模式的基础之上,分析了

6、 SQL 注入攻击的特点、原理,并对常用注入途径进行了总结。提出在主动式防范模型的基础上,使用输入验证、SQLServer 防御以及使用存储过程替代参数化查询相结合的形式构建出一种有效防范 SQL 注入攻击的思路和方法。并用Pymssql模块测试表明该防范模型具有较高的实用性和安全性。关键词:数据库安全,flask网关技术,SQL注入攻击,SSL,Pymssql1、 数据库安全技术现在,随着计算机技术和通讯技术的发展,计算机已经应用在人们日常生活的各个方面,它已经成为推动人类社会发展的一个重要工具。虽然计算机给人们的生产和生活带来了方便,但是伴随而来的是出现了一系列亟待解决的问题,数据库系统的

7、安全就是其中的一个重要组成部分。 1.1 数据库存在的威胁与研究现状数据库的安全性是指数据库的任何部分都不允许受到恶意侵害,或未经授权的存取与修改 。数 据库是信 息系统 的核心部分,有价值的数据都存放在其中,这些共享的数据源,既要面对必须得可用性需求 ,又要面对被篡改、损坏和被盗取的威胁。通常情况下,数据库的破坏来自下列四个方而 :(1)系统故障 ;(2)并发 存取 而引起的数据的不一致 ;(3)转存或更新数据库 的数据有错误 ,封信事务未遵守保持数据一致性的原则;(4)人为的破坏,例如数据库被非法访问,甚至被篡改或破坏。发现威胁数据库安全 的源和检查相应的措施是数据库安全性问题的两个方面,

8、二者缺一可。安全本身是从不断采取管理措施过程中得到的。不过,安全,甚至用繁琐的措施加以保证的安全,也很有可能由于小小的疏忽而失去,那是经常发生的事。在关注安全问题的同时,首先要认识到威胁安全因素的客观存在,遗憾的是,大多数的威胁 源是看不到的,直至一切都太迟了。为了防患于未然,必须在威胁成为现实之前,对造成数据库安全威胁要有一个清晰的认识。1.1.1 篡改篡改是指对数据库中的数据未经授权进行修改,使其失去了原来的真实性。篡改的形式具有多样性,但是有一点是共同的 ,即造成影响之 前很难发现它 。篡 改是 由人为因素而产生的,一般来说,发生这种人为篡改有以下原因:个人利益驱动、隐藏证据、恶作剧、无

9、知 。1.1.2 损坏计算机信息系统中数据的真正丢失是数据库安全性所面临的一个客观存在的威胁。其表现的形式是:表和整个数据库或部分被删除或破坏。产生损坏的原因有:破坏、恶作剧、病毒。破坏往往都带有明显的作案动机,解决起来相对比较困难。之所以难,是因为这些破坏的人到底是来自内部还是外部时间很难认识,很难说得清楚 。恶作剧往往处于好奇 给数据库造成 了破坏。这些人通过某种方式访问数据库的程序,哪怕对数据作级小的修改,都可能使全部数据变得可读 。计算机病毒任信息系统中能感染的范围非常大,因此,采取必要有效的措施进行防护很必要。最简单的办法是限制来自外部的数据源、磁盘或在线服务的访问,并采用性能好的病

10、毒检查程序对所有引入的数据进行 强制性检查 。1.1.3 窃取窃取一般是对敏感数据的访问完成的。窃取的方法除了将数据拷贝到软盘之类的可 移动的介质上外,也可以把数据打印后取走。窃取的主要原因有:工商业间谍、将要离开的员工、被窃取的数据可能比想象中的更有价值 。1.2 数据库安全的研究现状在国际上,有关数据库系统的安全性的研究起步的比较早,很多国家的政府机关和一些大型企业的科研部门都投资了很多的金钱,开展了许多的实验和研讨,并且也已经获得了比较好的研究成果。从1970年开始,美国的国防部就开展了有关数据库系统的多级安全机制的研究工作,这项研究内容主要有数据库系统安全性的需求、建立安全模型、数据仓

11、库的保密、数据库系统的推理控制等。另外在国际上也产生了一批安全性级别比较高的开发软件:如SYBASE,ORACLE等的安全级别都达到了B级。1985年12月,美国国防部依据军队对计算机系统的安全需求,制定了可信计算机系统安全评估标准TCSEC,这个评估标准包括4个等级、7个级别。在国内,越来越多的人也已经认识到了数据库系统安全的重要性,也纷纷的开展了有关数据库系统安全的科学研究。现在我国的数据库生产商都在自己所生产的软件产品中增加了数据库安全性方面的功能,如安全控制策略、数据库的备份与数据库的恢复,审计等。从2001年开始,我国开始执行计算机信息安全保护等级划分准则。在这个准则中,将数据库系统

12、的安全级别划分为5个等级。虽然我国对数据库安全的研究取得了一定的成就,但是由于我国开展这项工作的起步晚,底子薄,因此在国内有关数据库安全研究的理论成果和开发出来的应用软件都明显的落后于其他国家。如我国的电力、金融、保险等行业所使用的数据库软件基本上都是使用Oracle,Sysbase, Informix等开发工具开发的,而这些软件产品的安全性级别是比较低的。1.2.1 数据库安全的具体标准关于数据库安全的标准,在国内外上都没有一个具体的标准。但是在通常情况下,一个数据库如果是安全的,必须要做到以下几个方面:(1)必须做到数据库中的数据是保密的,能够阻止不合法的用户来访问数据库,能够保证数据库中

13、的数据不被泄露和更改。(2)必须保证数据的完整性和数据的一致性。数据的完整性是指保证数据库中所有的数据都必须是正确的数据。数据的一致性是指对数据库中的数据进行过若干部操作后,必须保证一切数据都处于一种一致的状态。(3)必须保证所有的数据都是可用的,也就是要能够阻止非法用户试图对数据库的破坏,并且能够对已经损坏的数据库进行及时的修复,使得数据库中的数据始终处于一个可用的状况。(4)必须保证对数据库进行的一切操作进行跟踪记录,以实现对修改和访问数据库的用户进行追踪,从而方便追查并防止否认对数据库进行的操作。1.3 数据库安全策略1.3.1 最小权利法则应用程序使用连接数据库的账户应该只用于必要的特

14、权,有利于保护整个系统尽可能少的收到入侵者的危害。通过限制用户权限,隔离了不同账户可执行的操作,用不同的用户账号执行查询,插入,更新,删除操作,可以防止原本用于执行的SELECT命令的地方却被用于执行INSERT,UPDATE或DELETE命令。1.3.2 账号安全法则禁用默认的root管理员账号,新建一个复杂的用户名和密码管理数据库。1.3.3内容加密有些网站使用SSL/SSH数据加密,但是加密技术只对数据传输过程进行加密,无法保护数据库中已有的数据库,目前对数据进行加密的数据库系统很少,可以根据系统支持的加密算法在存储时对数据进行加密,安全的保存在数据中,在检索时对数据库进行解密,实现数据的加密功能,数据库加密环节会详细分析该种技巧。1.3.4 存取控制用户应该无权通过SQL语句来实现对系统命令的调用,这是注入Webshell时十分危险的漏洞。身份鉴别是访问控制的基础。对信息资源的访问还必须进行有序的控制,这是在身份鉴别后根据用户的身份进行权限的设置。访问控制的任务是:对系统内的所有的数据规定每个用户对它的操作权限。存取控制可以分为下面的3种形式:(1) 自主访问控制(DAC)。就是将用户对数据库的访问权限进行控制,让所有的用户只能访问自己有权限使用的数据。当某一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号