• 13
  • 14
分享
  • 数据库黑白名单配置方法综述与总结——软件测试圈
  • 曼倩诙谐 2021-03-30 10:02:55 字数 1897 阅读 3075 收藏 14

  在日常开发、测试中,数据库由于存储了大量业务数据而成为整个系统中极为重要的关键节点,作者在前期发表的《信息泄漏防不胜防!终于有测试人关注信息安全了》一文中对Oracle数据库的透明数据加密技术(Oracle TDE)进行了详细阐述,本文将从数据库的访问控制角度对Oracle、Mysql、Gbase三种常见关系型数据库(RDBMS)的黑白名单配置方法进行说明,方法很简单,但却很实用,希望能对开发、测试及运维人员有所帮助。

  一.Oracle数据库黑白名单配置方法

  1.测试环境版本说明:Suse Linux 11 SP2 + Oracle 12.1.0.2

  2.涉及文件:修改$ORACLE_HOME/network/admin/sqlnet.ora文件,若没有该文件可新建。

  3.主要参数说明:

1-1.png

表1.主要参数说明

  一般来讲tcp.invited_nodes与tcp.excluded_nodes配置一个即可,当同时配置时tcp.invited_nodes优先级更高。

  4.配置方法:编辑$ORACLE_HOME/network/admin/sqlnet.ora文件,加入如下参数:

  tcp.validnode_checking = yes
  tcp.invited_nodes = XXX.XXX.XXX.XXX,XXX.XXX.XXX.XXX...

  重启监听服务,配置生效:

  lsntctl stop;

  lsnrctl start;

  5.测试验证:不在白名单清单中的机器远程登录Oracle数据库时报ORA-12547:TNS:lost contact错误,并且无论通过客户端还是应用程序(如jdbc,odbc)登录或连接数据库都将受限。

1-2.png

图1.Oracle黑名单登录报错信息

  二.Mysql数据库黑白名单配置方法说明

  测试环境说明:Suse Linux 11 SP2 + Mysql 5.7.20

  Mysql数据库的黑白名单配置方法更为简单,在Mysql数据库中用户分为两部分:用户名@‘白名单’。

  可以在创建数据库登录用户时设置该用户可以通过哪些IP地址访问数据库,如:

  create user test@’10.0.0.1’ identified by ‘XXXXXX’;

  上面SQL创建的test用户将只能从10.0.0.1的机器上通过TCP/IP方式登录数据库;Mysql还支持*号通配符,对于某一个范围的IP地址段可使用*进行统一指定,如:

  create user test@’10.0.0.*’ identified by ‘XXXXXX’;

  上面SQL创建的test用户将可以从10.0.0的整个段登录Mysql数据库。

  需要注意的是,test@’10.0.0.1’与test@’10.0.0.*’两个用户虽然名字是一样的,但却是两个不同的用户,因为用户可以登录的机器列表是不同的。

  当在非白名单清单中的数据库或客户端上登录远程Mysql数据库时,会报主机不能连接Mysql服务的错误提示:

1-3.png

图2.Mysql黑名单登录报错信息

  三.GBASE数据库黑白名单配置方法说明

  Gbase数据库作为国产MPP列存储数据库,目前主要用于业务分析及统计类系统中。由于GBASE数据库的SQL语法与MYSQL类似,其用户也分为两部分:用户名@‘白名单’,因此GBASE数据库的黑白名单设置方法与Mysql一致,在此不在重复说明。

  四.操作系统防火墙实现黑白名单登录控制

  从本质上来讲,这种方法不是数据库层面的黑白名单控制方法,而是在操作系统网络防火墙层面做的访问控制,故在此只做简单论述。

  首先需要确保防火墙已经开启,之后执行:

  iptables -I INPUT -s XXX.XXX.XXX.XXX -p tcp --dport 1521 -j ACCEPT

  进行白名单添加,之后重启防火墙即可,具体操作会随操作系统版本的不同而有差异,读者可根据自己的操作系统版本自行尝试。

  五.综述与总结

  数据库的黑白名单控制方式非常简单,即使对数据库的运行机制不是很了解也可以快速上手,但是其起到的效果和实用性却非常高。对于使用需保护的敏感数据进行开发、测试的过程中,为加强敏感数据的保护,防止恶意攻击,可考虑按照数据库的产品类型进行白名单的配置,一定程度上将登录数据库的范围缩短至可控范围,方便事后的可追溯性,有此需求的小伙伴不妨试一下,说不定会有惊喜。


作者:颜廷义   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 又是一年跳槽季,最近有不少小伙伴跑来咨询:想找软件测试工作,应该要怎么进行技术面试准备?工作不到2年,想跳槽看下机会,有无软件测试的面试题呢?金三银四,大家找工作的需求比较高,所以该文章就“如何进行技术面试准备”来聊一聊。清楚应聘企业的岗位职责要求首先呢,所谓知己知彼百战不殆,我们先得弄清楚应聘企业对于求职者的技能要求是什么,然后有针对性地去做复习准备。以下以1-3年工作经验,薪资期望10-15k举例,其他自动化测试、性能测试等岗位同理。随意打开一家网上招聘平台,例如boss直聘,选择对应城市,输入岗位-软件测试工程师,选择自己符合的工作年限,选择自己期望的薪资要求,点击搜索。图片.png然后...
            14 14 2689
            分享
          • 随着技术的进步,每家企业都将其业务从实体办公室转移到网站和Web应用程序,从而实现在线发展。这带来了一系列更新的测试技术,以迎合最终用户的最佳产品或服务。在启动任何软件,网站或应用程序之前,许多测试技术(例如跨浏览器测试,用户验收测试,回归测试)已变得显而易见,为了确保最佳的用户体验和稳定的功能,还需要一种测试技术是探索性测试。与其他测试技术不同,探索性测试没有测试人员必须遵循的一组固定方法,但是相反,测试人员拥有发现产品/服务随时间推移不断改进的完全自由。这更像是随着时间的推移以及网站或应用程序的开发而进行的持续改进。让我们更进一步地探究探究性测试到底是什么,它为何如此重要,如何进行探究性测...
            0 0 2885
            分享
          • 1、引言在撸码过程中,99.1%的大佬,都不敢说自己的撸出来的代码,是不需要debug的。换句话说,码农在撸码过程中,最痛苦的,莫过于撸出来的代码,又…为了能避坑,小鱼也是在撸码过程中,总结的一点避坑方法,请各位大佬笑纳2、避坑内容总结2.1无法定位到元素遇到问题:找不到元素,脚本报“NoSuchElementException:Unable to find element”,或"定位到了,不能操作,点击无效解决方法: - 查看自己的“属性值”是否写正确 - 元素的标签不唯一,默认找到第一个 - 向上查看,元素是否在frame或iframe框架...
            1 4 12993
            分享
          •   据彭博社记者马克-格尔曼(Mark Gurman)报道,苹果可能会在五月的第一周推出新款 iPad Pro 和 iPad Air。古尔曼今天在他的"Power On"时事通讯中说:"对于那些想了解更具体时间的人来说,我听说发布会可能会在 5 月 6 日那一周举行。另一个数据也说明了这一点: 苹果零售店正准备在该周晚些时候接收新产品营销材料。"  预计苹果将发布以下产品:  两款新的 iPad Pro,配备 M3 芯片、OLED 显示屏、更薄的机身、更薄的边框、哑光屏选项、横向前置摄像头、其他设计变化,以及可能的 MagSafe 无线充电。  两款配备...
            0 0 871
            分享
          • 1、引言这刚刚整理完公司内部技术分享的PPT,看看时间,又已经是凌晨…喝一杯美咖,提提神,反正都已经这个时间了,索性,就直接开始写博客吧。因为最近总是被某些大佬艾特,说我这2月份更新的博文不地道了…我也是哑巴吃黄连啊~~~因为最近在给一些同学讲解接口的事情,本以为 Cookie、Cache及Session这些知识,都是逢考必过的内容,然鹅,又是我想多了。为了能让我可以多想点,今天就分享这三点姿势!!2、Cache关于缓存,我看了网上的一些教程讲解,几个字概括:     太繁琐,太啰嗦,长篇大论为了能让大家更容易理解,小鱼我以文字+流程图的形式来分享。首先,针对接口...
            1 2 7056
            分享
      • 51testing软件测试圈微信