避免从 SQL 服务器本身注入 sql

本文关键字:注入 sql 服务器 SQL | 更新日期: 2023-09-27 18:36:55

我有一个应用程序说查询生成器,它从用户那里获取sql查询的输入以从表中选择一些数据

我正在SQL服务器中执行此查询

现在我想停止用户使用 DQl 命令以外的命令

是否可以在SQL服务器本身中执行

sql服务器中是否有任何命令可以判断其DQL命令是否,那么在我可以限制它之后

谢谢

避免从 SQL 服务器本身注入 sql

其 SQL 服务器查询

这将非常难以锁定;您可以使用SQL服务器中的权限进行某种方式,但是他们仍然很容易做非常糟糕的事情(例如,不需要很多大表的交叉联接就可以有效地使服务器脱机 - 或者他们可以打开可序列化的事务, 从某些表中进行选择,而不是关闭事务)。

我强烈建议不要让用户编写sql。给他们其他工具来做他们需要的事情。

或者,在不同的服务器上运行查询 - 理想情况下,您已经推送了数据的安全版本(即没有任何 PII) - 它们是否控制服务器并不重要,因为它没有连接到任何重要的东西。有点像SEDE。