本机IMS是否容易受到注入攻击?

时间:2020-06-11 20:30:12

标签: db2 sql-injection cobol mainframe ims-db

this article所示,DB2可能容易受到SQL注入的攻击:

* Potential SQL injection if X, Y or Z host variables come from untrusted input 
STRING "INSERT INTO TBL (a,b,c) VALUES (" X "," Y "," Z ")" INTO MY-SQL.
EXEC SQL PREPARE STMT FROM :MY-SQL END-EXEC.
EXEC SQL EXECUTE STMT END-EXEC.

我的问题是本机IMS命令是否容易受到这种(或类似的)注入攻击?例如,通过在the ISRT DLI command中插入恶意输入。

4 个答案:

答案 0 :(得分:2)

这取决于您打算如何访问IMS数据库。

IBM document报价。

您通过Web界面或 ISPF接口在IMS中作为IMS应用程序编程API执行。 z /OS®中的IMS SPUFI应用程序。您可以选择COBOL或Java™ 在语言环境中执行SQL语句。

如果使用SQL,则可能容易受到SQL注入的攻击。<​​/ p>

如果使用本机IMS命令,则可能不会。但是,即使对于本机IMS命令,清理输入内容仍然是一个好主意。

答案 1 :(得分:1)

是的,所有支持运行时解析SQL查询字符串的SQL数据库都容易受到SQL注入的影响。

SQL注入不是数据库技术中的缺陷,而是您编写的用于构建SQL查询字符串的客户端代码中的缺陷。

答案 2 :(得分:1)

我是IBM IMS团队的成员。

IMS DL / I调用不是动态的,因此不像SQL调用那样容易受到影响。 CALL xxxTDLI IMS API没有注入风险。话虽这么说,COBOL程序可以通过允许输入程序影响SSA列表或传递给xxxTDLI的IOAREA参数来开放风险。因此,针对这些接口进行编程时应遵循安全的工程实践。

答案 3 :(得分:1)

否,IMS DL / I数据库根本不解析记录。将其视为像Cassandra这样的NoSQL数据库的早期版本。段键被解析为二进制值,但是您不能像在SQL数据库中那样进行注入。

并且取决于程序员/ IMS-管理员的技能,可以通过限制PSB中PCB的PROCOPT对程序可用的可用CRUD操作的范围来关闭攻击媒介。

大多数IMS-system + DB2使用静态SQL,因此该语句已经准备好并且不容易受到SQL注入攻击。

相关问题