数据库安全

先分3点从全局来看

对操作系统的安全需求:防止对DBMS的非法访问和修改,保护存储的数据、文件的安全性,对数据库用户的认证 对数据库系统本身的安全需求:用户认证管理、访问控制、审计,数据库的稳定性,保证数据的安全性与完整性,完善的恢复功能,数据加密 对数据库应用系统的安全需求:访问控制、认证管理,对数据库的保护防止非法访问和修改,自身的稳定性

举一个实例

SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是SQL注入的标准释义。 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,比如典型的攻击类型是在newsid变量后加后sql语句:exec xp_cmdshell ‘net user’ 这样就执行了一个加用户的命令了。

Web应用程序访问数据库会造成特定的一些潜在安全问题。SQL注入攻击仍然稳居黑客至爱兵器榜的首位,对那些想要保护数据安全的企业来说,这是个大麻烦。 据CVE的2006年度统计数据显示,SQL注入攻击漏洞呈逐年上升的状态

如何做好数据库的安全工作

1.数据库基本安全架构

从广义上讲,数据库的安全首先依赖于网络系统。网络系统的安全是数据库安全的第一道屏障,外部入侵首先就是从入侵网络系统开始的。

解决方案:防火墙,入侵检测 IDS—Instrusion Detection System,协作式入侵检测技术,IPS:Intrusion Prevention System 入侵防御系统

对于宿主操作系统层次,操作系统安全策略用于配置本地计算机的安全设置,包括密码策略、账户锁定策略、审核策略、IP安全策略、用户权利指派、加密数据的恢复代理以及其它安全选项。 2 数据库用户及权限

减少特权管理,不要显式地将同一特权组授权给几个用户,只需将这特权组授给角色,然后将角色授权给每一用户。 动态特权管理,如果一组特权需要改变,只需修改角色的特权,所有授给该角色的全部用户的安全域将自动地反映对角色所作的修改。 特权的选择可用性,授权给用户的角色可选择地使其使能(可用)或使不能(不可用)。 应用可知性,当一用户经一用户名执行应用时,该数据库应用可查询字典,将自动地选择使角色使能或不能。 专门的应用安全性,角色使用可由口令保护,应用可提供正确的口令使用权角色使能,达到专用的应用安全性。因用户不知其口令,不能使角色使能。 3 数据库加密技术

库外加密 将数据库的文件作为加密对象,在库外加密方式中,加/解密过程发生在DBMS之外,DBMS管理的是密文。加/解密过程大多在客户端实现,也有的由专门的加密服务器或硬件完成。 库内加密 加密对象为数据库中存储的数据,比如表、记录、元素、数据等。库内加密在DBMS内核层实现加密,加/解密过程对用户与应用透明,数据在物理存取之前完成加/解密工作。 硬件加密 在物理存储器与数据库系统之间的硬件加密装置,加密解密操作由硬件中间设备完成 4 数据库备份技术

数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT)、冷备份、热备份。      — 导入/导出备份:逻辑备份      — 冷备份:物理备份      — 热备份:物理备份 设定数据库备份计划,启动数据库归档模式,定期执行数据库备份,监控检查备份情况

5 数据库审计技术

审计是对选定的用户动作的监控和记录,通常用于: 审查可疑的活动。例如:数据被非授权用户所删除,此时安全管理员可决定对该 数据库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计。 监视和收集关于指定数据库活动的数据。例如:DBA可收集哪些被修改、执行了多少次逻辑的I/O等统计数据。

数据库常见攻击与防护

1 破解弱口令或默认的用户名及口令

Oracle数据库常见缺省用户:SYS、SYSTEM、DBSNMP、SCOTT 数据库常见缺省用户:SA

2 特权提升

特权提升:恶意的用户占有超过其应该具有的系统特权 原因: 数据库管理系统漏洞 如:oracle 10g DBMS_Scheduler本地特权提升漏洞:任何拥有CREATE JOB权限可通过dbms_scheduler执行一个数据库作业而转换SESSION_USER到SYS,本地攻击者可以利用此漏洞提升权限。 错误的配置:一个用户被错误地授与了超过其实际需要用来完成工作的、对数据库及其相关应用程序的访问和特权。 3 利用未用的数据库服务和功能中的漏洞

利用未用的和不需要的数据库服务和功能中的漏洞 利用未用的和不需要的数据库服务和功能中的配置缺陷 4 针对未打补丁的数据库漏洞

虽然Oracle和其它的数据库厂商确实在为其漏洞打补丁,问题是单位不能跟得上这些补丁,因此它们总是处于企图利用某种机会的老谋深算的攻击者控制之下。 5 SQL注入攻击及防护

漏洞原理:在数据库应用的编程过程中,由于程序员没有对用户输入数据进行规范检查,导致攻击者能够通过构造恶意输入数据,操作数据库执行,甚至能直接攻击操作系统 SQL Injection(SQL注入),就是利用某些数据库的外部应用把特定的数据命令插入到实际的数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的。

解决方案:

从根本上避免出现SQL Injection漏洞,必须提高WEB程序员的安全意识和安全编程技能来解决程序本身的漏洞; 代码中必须对所有用户输入进行严格的过滤,对单引号、双引号以及“--”等符号、非指定的数据类型及数据长度进行过滤; 用存储过程来执行所有的查询 限制表单或查询字符串输入的长度 检查用户输入的合法性,确信输入的内容只包含合法的数据 将用户登录名称、密码等数据加密保存 检查提取数据的查询所返回的记录数量  合理设置数据库应用程序的权限; 对数据库系统进行必要的安全配置。

转载于:https://www.cnblogs.com/soundcode/archive/2012/09/14/2684854.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ST_LINK/V2 SWIM和SWD、JTAG下载口说明

LED状态说明 闪烁红色:ST-LINK/V2连接到计算机后,第一次USB枚举过程红色:ST-LINK/V2与计算机已建立连接闪烁绿色/红色:目标板和计算机在进行数据交换绿色:通讯完成橙色(红色绿色):通…

js 日期扩展

// 对Date的扩展,将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()…

Gerrit的用法及与gitlab的区别

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 来到一个新的团队,开发的代码被同事覆盖了。找同事核实,同事却说根本没有看到我的代码。经过一番沟通…

人事资料

考察人品 1. 你有缺点吗 2. 当你发现你的顶头上司用办公电话聊私事,你会怎么做 3. 作为财务经理,如果总经理要求你在一年之内逃税100万,你会怎么做 4. 你的耳环多少钱买的 考察能力 1&#…

c语言位段

通常计算机最小处理单元基本就是byte字节了,就是八个二进制位,位段则是按计算机中真正的最小单位二进制位来存储处理数据,可以更高效的利用内存。 位段(bit-field)是以位为单位来定义结构体(或联合体)中的成员变量所占的空间。含有位段的结构…

The 15th UESTC Programming Contest Preliminary H - Hesty Str1ng cdoj1551

地址:http://acm.uestc.edu.cn/#/problem/show/1551 题目: Hesty Str1ng Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) A chrysanthemum was painted on the second page, and we tried to use the magic pow…

python基础之序列类型的方法——列表元组

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 Hello大家好,我是python学习者小杨同学,上次跟大家分享关于python的数值类型和序列类型,…

北方网-ios预科班

http://www.tudou.com/listplay/9oNp8KgmJZw.html 转载于:https://www.cnblogs.com/freeliver54/archive/2012/09/16/2687189.html

管家婆SQL SERVER数据库“可能发生了架构损坏。请运行DBCC CHECKCATALOG”修复

【数据库故障描述】用户在使用过过程中,由于突然断电,造成数据无法读取。DBCC检测数据库提示以下错误消息211,级别23,状态51,第1 行可能发生了架构损坏。请运行DBCC CHECKCATALOG。消息0,级别20&#xff0c…

1009 产生数 2002年NOIP全国联赛普及组

009 产生数 2002年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description给出一个整数 n&#xff08;n<10^30) 和 k 个变换规则&#xff08;k<15&#xff09;。  规则&#xff1a;   一位数可变换成另一个一位数&#…

K近邻算法

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 一、K近邻算法简介 K近邻算法(K-Nearest Neighbor)简称KNN算法,是最简单的预测模型之一&#xff0c;它没有多少数学上的假设…

easyui 点滴记录

为什么80%的码农都做不了架构师&#xff1f;>>> 【1.安装】&#xff1a;pip install easygui 【2.常用】 integerbox 交互式输入数字textbox 交互式输入文本ccbox 确认判断boolbox 是否判断multchoicebox 多选条目choicebox 单选条目buttonbox 单选按钮【3.体验一…

如何在邮件系统中使用自己的域名?

如何在邮件系统中使用自己的域名&#xff1f; 主要分为以下两种情况&#xff1a;1.MX记录已经存在&#xff1a; 如果MX记录已经存在&#xff0c;并且已经检查出是在某一个域名服务器上&#xff0c;您需要做的工作就是与您的域名服务商或该域名服务器的管理人员联系&#xff0c;…

IAR切BANK--BANK说明

一、为什么要用到BANK&#xff1f; C51单片机的最大寻址范围为2^1664K&#xff0c;为了突破64K代码的限制&#xff0c;就需要采用C51的切BANK。 二、切BANK的原理 代码地址空间的上半部 ,以重叠BANK0的物理地址空间 , 硬件设计了 n个存储 器页面来存储程序代码 。在任一时刻 …

pl/sql developer 自带汉化选项

pl/sql developer 自带汉化选项 版本&#xff1a;11.0.2 工具 -> 选项 -> 用户界面 ->外观&#xff0c; 第一项就是选择语言&#xff1b; 选择Chinese.lang&#xff0c;如果有的话&#xff1b; 转载于:https://www.cnblogs.com/stono/p/6645548.html

实现自己的BeanFactory、AOP以及声明式事务

实现自己的BeanFactory 在使用spring时&#xff0c;我们很少用"new"关键字创建对象&#xff0c;而是通过spring容器BeanFactory提供的getBean()方法得到对象&#xff1a; BeanFactory ctx new C…

Docker遇到的一些问题和感想

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 Docker 是“不可变”架构。 当你希望改变一个服务的时候&#xff08;比如更新版本、修改配置、开放端口&#xff09;&#…

hdu 4293 Groups DP

http://acm.hdu.edu.cn/showproblem.php?pid4293 题意&#xff1a; 有n个人分成了若干组走在一条林荫道路上&#xff0c;导游为了能够确定人数&#xff0c;要求每个人喊出自己所在的队伍前边有多少人Ai表示,后边有多少人Bi表示&#xff0c;于是我们得到了n条信息。这里面有错误…

IAR切BANK--命令连接器文件xcl格式说明

IAREWARM中段后缀含义 后缀 段类型 含义 AC CONST 绝对地址定位常数 AN DATA 用关键字__no_init声明的绝对地址定位数据 C CONST 常数 I DATA 初始化值为非0的数据 ID CONST 上述数据的初始式 N DATA 未初始化的数据 Z DATA 初始化值为0的数据 ROM用于…

ARM系列处理器的分类

1.ARM ARM即以英国ARM&#xff08;Advanced RISC Machines&#xff09;公司的内核芯片作为CPU&#xff0c;同时附加其他外围功能的嵌入式开发板&#xff0c;用以评估内核芯片的功能和研发各科技类企业的产品. ARM 微处理器目前包括下面几个系列&#xff0c;以及其它厂商基于 AR…