Python 中的 SQL 注入保护
问题:
为了防止 SQL 注入漏洞,如何清理从用户接收并通过 JSON POST 发送的字符串,以便在 SQLite 数据库中进行安全更新操作Python?
答案:
利用参数化查询
降低 SQL 注入风险的推荐方法是使用参数化查询。 Python 的 sqlite3 模块通过占位符参数 (?) 支持此功能。它不是将用户输入直接连接到 SQL 语句中,而是作为参数传递,将用户输入与 SQL 语法分开。
修订的代码:
def setLabel(self, userId, refId, label): cursor = self._db.cursor() query = """UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""" cursor.execute(query, (label, userId, refId)) self._db.commit()
通过使用参数化查询,标签输入中的任何潜在恶意字符或元字符都会自动转义,确保它们被解释为文字文本而不是 SQL命令。
以上是在 Python 中通过 JSON POST 更新 SQLite 数据库时如何防止 SQL 注入?的详细内容。更多信息请关注PHP中文网其他相关文章!