1.概述

众所周知,不安全的SQL语句的执行将会给企业带来一定的损失。例如drop表操作、执行update、delete不带where条件的这种语法,都会造成严重的数据损失。有些情况是人为,还有些是工作人员疏忽引起的等等,但不管是那种行为,都有必要进行一定的防范。在应用层及环境不做变动的情况下,采取中间件的方式是比较合理的解决方案。也就是说使用者的使用方式还是跟以前一样,只是我们在应用层和数据库层串联一个中间件程序,应用层连接中间件跟连真实数据库达到的是同样的效果。这个时候我们就可以用它来达到安全防护的目的。为了让大家理解这个工作流程,我用中间件(OneGuard)做了下演示。


2.演示

目的:禁止drop语句的执行、update/delete不带where条件的执行

服务端环境:Oracle11g

测试的客户端:sqlplus,plsql


步骤1:启动oneguard程序

Oracle中间件 - 不安全SQL拦截

在启动前,我们已经配置好了相关规则并配置了被拦截显示的错误消息,请继续看下方。


步骤2:使用客户端连接oneguard,如图工作端口是8221,我们只需要将平时连1521的端口改成此端口即可。

sqlplus:

Oracle中间件 - 不安全SQL拦截


plsql:

执行drop操作被拦截

Oracle中间件 - 不安全SQL拦截


执行delete不带条件被拦截

Oracle中间件 - 不安全SQL拦截


执行select语句,正常执行

Oracle中间件 - 不安全SQL拦截



再来个复杂语法的,其中包含delete不带where语句

Oracle中间件 - 不安全SQL拦截


3.结束语

如上内容所示,只需要让客户端连接到oneguard,其他不用做任何变动,即可得到实用且丰富的安全防护功能。


如果对此内容感兴趣,可以加入此群一起交流(QQ群:578757716

相关文章:

  • 2022-02-23
  • 2021-06-16
  • 2021-10-26
  • 2022-12-23
  • 2022-02-02
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-08
  • 2021-12-06
  • 2022-12-23
  • 2022-01-09
  • 2021-07-14
相关资源
相似解决方案