【发布时间】:2022-11-11 02:47:30
【问题描述】:
我在 s3 存储桶中有一个 CSV 文件,我正在使用 boto3 库访问它。我正在使用select_object_content 函数用SQL 语言查询文件。
这是我的代码:
resp = self.s3_client.select_object_content(
Bucket=S3_BUCKET_MAPPING,
Key=S3_BUCKET_MAPPING_KEY,
ExpressionType="SQL",
Expression=f"SELECT * from s3object s where s.field = 'value'",
InputSerialization={
"CSV": {"FileHeaderInfo": "Use"},
"CompressionType": "GZIP",
},
OutputSerialization={"JSON": {}},
)
我的问题是关于表达式:f"SELECT * from s3object s where s.field = 'value'"
- 当数据存储在 S3 中而不是实际的 SQL 数据库中时,这种类型的数据获取是否需要考虑 SQL 注入?
- 如果 SQL 注入是一个问题,有没有办法像编写访问 SQL 数据库的代码那样参数化这个表达式?到目前为止,我还没有找到任何可以提供帮助的东西。
【问题讨论】:
标签: python amazon-s3 boto3 sql-injection