如何避免在查询中进行SQL注入

问题描述 投票:0回答:1

我在python代码中的SQL查询构造为:

query = '''
SELECT {return_col} 
FROM {table_name}   
'''.format(colA, tableA)

当我运行Bandit安全工具时,它说通过基于字符串的查询构造可能的SQL注入向量。

如何避免呢?

python sql sql-injection
1个回答
0
投票

最佳做法建议避免动态构建查询,而应使用参数化查询。但目标恰恰是避免您在此做什么:防止使用伪造的参数来允许任意查询。

如果知道为什么允许查询任何表中的任何字段,并且如果运行查询的帐户仅对数据库具有SELECT特权,那么您可以忽略该警告:它只是说您可以允许对任何表进行请求。 ..您想做什么!

但是请检查安全隐患。在某些情况下,它可能很好,而在另一些情况下,则可能很糟糕。

© www.soinside.com 2019 - 2024. All rights reserved.