【发布时间】:2013-07-26 04:48:32
【问题描述】:
我正在编写一个简单的实用程序,它允许我们的用户在数据库上运行简单的 select SQL 语句来检索他们需要的数据。只是一个文本框和一个按钮,当他们单击按钮时,它将在列表中显示查询结果。
我的问题是我只希望他们能够运行 SELECT 语句。我不希望执行任何编辑语句,即更新、插入、删除、删除等。
有没有一种简单的方法来解析一个 sql 字符串以确保它只输入了一个只读的 select 语句?
【问题讨论】:
-
您应该查看this 了解一些预防措施
-
假设
SELECT语句总是安全的很危险。例如,SELECT * FROM sys.tables可能会给某人一些相当危险的信息,他们可能会在您系统的其他地方使用这些信息。 -
说到 simple 选择,创建一个简单的查询构建器会更安全,让用户选择一个表和一个条件。
标签: sql sql-server tsql sql-injection