构造SELECT

时间:2018-07-30 07:14:38

标签: java sql security sql-injection

我想避免SQL注入。我通过简化正在处理的问题来发布问题。

客户端希望从表中查看一组列。它传递表名和列列表。客户端通过安全的API知道表名和所有可能的列列表。

在服务器上,我正在使用表名和传递的列列表来构造SELECT查询。

我无法使用视图。

为了避免SQL注入,这是我计划要做的事情。

  1. 检查传递的列是否是所有可能的列列表的一部分。
  2. 检查列中是否包含=,-,+之类的字符,以避免任何安全问题。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:4)

查询目录以检查输入的表名是否确实存在于数据库中。 (同样,用于检查输入的列名确实是命名表的列。)