Db2 本机IMS易受注射伤害吗?

Db2 本机IMS易受注射伤害吗?,db2,sql-injection,cobol,mainframe,ims-db,Db2,Sql Injection,Cobol,Mainframe,Ims Db,如中所示,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-E

如中所示,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命令是否容易受到此类(或类似)注入的攻击?例如,通过在中输入恶意输入

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


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

这取决于您计划如何访问IMS数据库

引述一位作家的话

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

如果使用SQL,则可能容易受到SQL注入的攻击


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

我是IBM IMS团队的成员


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

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

<> P>根据程序员的编程技巧,通过使用PSB中PCB的PROPopt限制程序可用的CRUD动作的范围,可以关闭攻击向量。
大多数IMS系统+DB2使用静态SQL,因此语句已经准备好,不易受到SQL注入攻击。

谢谢!但是,我正在寻找本机IMS的一个特定示例(我对问题进行了更精确的编辑)。您尚未指定编码语言,因此我不确定您要寻找的是哪一个特定示例。以下是访问IMS数据库的DLI命令列表。是的,我的意思是使用ISRT命令,例如。这可能吗?一般来说,本机IMS命令不可能。你可以建立一个系统,让用户输入所有IMS参数,在这种情况下,他们可以做任何他们喜欢做的事情;这与IMS或DB2无关。