如何解决Athena的SQL注入?

时间:2018-06-12 18:37:25

标签: sql-injection amazon-athena

我正在编写一个访问Athena数据的Spring Java程序,但是我发现Athena JDBC驱动程序不支持PreparedStatement,有没有人知道如何避免在Athena上注入SQL?

1 个答案:

答案 0 :(得分:6)

在准备查询之前,您必须将SQL查询格式化为字符串,并通过字符串连接包含变量。

换句话说,欢迎大约2005年的PHP编程! :-(

这将对您和您的应用程序代码负责,以确保变量是安全的,并且不会导致SQL注入漏洞。

例如,您可以在将变量插入SQL之前将变量转换为数值数据类型。

或者,当可以声明可能允许的有限值集时,您可以创建白名单。如果您接受输入,请根据白名单进行检查。如果输入不在白名单中,请不要将其用作SQL语句的一部分。

我建议您向AWS Athena项目提供反馈,并询问他们何时在其JDBC驱动程序中提供对SQL查询参数的支持。通过 Athena-feedback@amazon.com

向他们发送电子邮件

另请参阅此相关问题:AWS Athena JDBC PreparedStatement