提问人:Deena 提问时间:11/10/2022 更新时间:11/11/2022 访问量:127
用于查询 s3 存储桶的参数化 SQL 查询
parameratized SQL queries for queries to s3 buckets
问:
我在 s3 存储桶中有一个 CSV 文件,我正在使用 boto3 库访问它。我正在使用该函数以SQL语言查询文件。select_object_content
这是我的代码:
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 数据库的代码一样参数化此表达式?到目前为止,我还没有找到任何可以提供帮助的东西。
答:
0赞
Egret
11/11/2022
#1
s3 支持有限的 SQL 语法。只要您使用静态 SQL 或使用参数传递,s3 就应该正确处理参数。
当然,如果您开始从不受信任的字符串创建 SQL 表达式,您可能会遇到麻烦。但这里似乎并非如此。
评论