使用列表创建安全的 MySQL IN 子句
使用 MySQL 数据库和 Python 时,内爆列表以在IN 子句。但是,安全地执行此操作对于防止 SQL 注入漏洞至关重要。
与其手动构造包含值列表的字符串,首选方法是使用查询参数机制。这允许您将列表直接传递到数据库驱动程序,而无需处理任何引用或转义。
以下是实现此目的的方法:
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (" format_strings ")", tuple(list_of_ids))
通过使用这种方法,可以让 MySQL 处理参数化的语句,从而避免 SQL 注入询问。数据将直接插入查询中,无需任何预处理,保证安全性和效率。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3