Abap SAP SAVE_TEXT功能模块是否能防止SQL注入?

Abap SAP SAVE_TEXT功能模块是否能防止SQL注入?,abap,Abap,我对功能模块保存文本有疑问。我假设可以创建自定义的tdobject和tdid,然后将长文本存储在表STXH、STXL中。保存的文本对SQL注入攻击有多安全?它不是因为将文本编码为原始格式而易受攻击吗?您的第一个假设要么在翻译过程中丢失了,要么首先是错误的-通常由应用程序开发人员使用事务SE75手动维护TDOBJECT和TDID的有效值。它们不是作为日常应用程序处理的一部分创建的 就数据库访问而言,有两个安全级别可以防止SQL注入,尽管其中一个不是设计为安全级别的: 文本内容以内部形式存储,并序列

我对功能模块保存文本有疑问。我假设可以创建自定义的
tdobject
tdid
,然后将长文本存储在表
STXH、STX
L中。保存的文本对
SQL
注入攻击有多安全?它不是因为将文本编码为原始格式而易受攻击吗?

您的第一个假设要么在翻译过程中丢失了,要么首先是错误的-通常由应用程序开发人员使用事务
SE75
手动维护
TDOBJECT
TDID
的有效值。它们不是作为日常应用程序处理的一部分创建的

就数据库访问而言,有两个安全级别可以防止SQL注入,尽管其中一个不是设计为安全级别的:

  • 文本内容以内部形式存储,并序列化为字节字符串。原始文本中可能存在的任何SQL命令都无法通过此转换

  • DML命令通过通常的数据库接口层传递,该层使用准备好的语句和一组固定的变量,这些变量只有在执行语句时才提供值。就我所见,没有使用动态SQL语句来修改
    STX*
    文本


  • 对于正常的业务应用程序,这应该足够安全。如果您想运行核电站,那么-我们必须谈谈。

    另外,如果您因为运行核电站而担心SQL注入,那么我不会从保护“保存文本”开始。谢谢您的详细解释,VWegert!这是非常有用的。我当然不想经营核电站。对于自定义tdobject和tdid,我的意思是使用SPRO事务创建文本对象:-)非常感谢@Tomdemyt:只是想说明“安全性”不是一件简单的事情。便宜、可用、安全-选择两个。你不可能同时拥有这三项——永远。@Elena:引用SPRO作为交易和引用men一样有用——也就是说,一点用处都没有。有成千上万的事务和其他设置可从SPRO访问。始终使用“真实”事务、视图或视图集群名称、BAdI定义、增强点或您所指的任何内容。