在 AWS Athena 中清理 SQL 查询参数

Posted

技术标签:

【中文标题】在 AWS Athena 中清理 SQL 查询参数【英文标题】:Sanitizing SQL query parameters in AWS Athena 【发布时间】:2018-07-25 11:04:09 【问题描述】:

在 AWS Athena 中,似乎没有将参数传递到 SQL 查询的好方法。典型的执行方式是从boto3call,

response = client.start_query_execution(
    QueryString='string',
    ClientRequestToken='string',
    QueryExecutionContext=
        'Database': 'string'
    ,
    ResultConfiguration=
        'OutputLocation': 'string',
        'EncryptionConfiguration': 
            'EncryptionOption': 'SSE_S3'|'SSE_KMS'|'CSE_KMS',
            'KmsKey': 'string'
        
    
)

如果我需要将参数传递给 QueryString,我需要对其进行清理以避免注入攻击。如何清理输入?

【问题讨论】:

致那些关闭它的人——请解释原因。这似乎完全合法。 这能回答你的问题吗? How to solve SQL injection for Athena? 【参考方案1】:

Athena API 中没有这样的功能。Athena 现在有prepared statements。

【讨论】:

以上是关于在 AWS Athena 中清理 SQL 查询参数的主要内容,如果未能解决你的问题,请参考以下文章

AWS Athena (Presto) DISTINCT SQL 查询中的重复结果?

Spark SQL 查询以获取在 AWS S3 中存储为 CSV 的 Athena 表的最后更新时间戳

AWS athena sql 查询以获取不同的数据

带有时间戳的 AWS Athena SQL 查询错误

从 Apache Zeppelin 对 AWS Athena 运行时,SQL 查询将永远运行

AWS Athena JDBC查询超时