您可以通过观察以下建议在 SAP HANA 中使用 SQLScript 开发安全过程。
使用 SQLScript,可以读取和修改数据库中的信息。在某些情况下,根据您选择的命令和参数,您可以创建可能出现数据泄露或数据篡改的情况。为防止出现这种情况,SAP 建议在所有过程中使用以下实践。
IN 或 OUT 标记每个参数。避免使用 INOUT 关键字。
VARCHAR。通过缩短变量的长度可以降低注入攻击的风险。
在 SQLScript 中,可以使用以下命令之一创建动态 SQL:EXEC 和 EXECUTE IMMEDIATE。尽管这些命令允许在 SQLScript 中使用可能不支持的变量。在这些情况下,除非在程序中执行输入验证,否则您将面临注入攻击的风险。在某些情况下,注入攻击可以通过其他数据库表中的数据发生。
为避免注入攻击的潜在漏洞,请考虑使用以下方法而不是动态 SQL:
SELECT 代替 EXECUTE IMMEDIATE 并在 WHERE 子句中传递值。
WHERE
您可能需要使用一些 SQLScript 中不支持的 SQL 语句,例如 GRANT 语句。在其他情况下,您可能希望使用数据定义语言 (DDL),其中某些 CREATE TABLE 语句是可能发生此情况的示例。在这些情况下,您可以使用动态 SQL 从代码中的过程创建转义。
为避免注入攻击的潜在漏洞,请考虑使用以下方法而不是转义代码:
提示有关 SAP HANA 中安全的详细信息,请参阅 SAP HANA 安全指南。