${data} 在 SQL 中是什么意思?

What does ${data} mean in SQL?

我正在尝试找出 ${data} 在此查询中的含义以及此查询是否容易受到 SQL 注入的攻击?

SELECT * FROM test WHERE ${data};

${data} 不是 SQL 语言的一部分。

看起来像 string interpolation几乎肯定容易受到 sql 注入攻击。

我说“几乎”是因为一些 ORM 工具会使用插值挂钩来进行正确的查询参数化...但即使是这些工具也倾向于查看单个值,而不是整个 WHERE 子句。为插值提供的 where 子句也可能包含参数化查询的有效占位符,并且我们没有看到其他代码可以正确处理此问题。不过好像不太可能。