确保数据库交互的安全对于防止 SQL 注入攻击至关重要。当接受容易被操纵的用户输入时,必须在服务器端实施保护措施。本文解决了保护 Python 中的 UPDATE 操作免受 SQL 注入的需要。
在给定的场景中,方法 setLabel 接受用户提供的输入并在没有适当保护的情况下执行 SQL UPDATE 查询。为了缓解这种情况,必须先对输入字符串进行转义,然后才能安全地将其传递到数据库游标。
Python 的 sqlite3 库提供了内置机制来防止 SQL 注入。将占位符变量替换为适当的引号值:
def setLabel( self, userId, refId, label ): self._db.cursor().execute( """UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", ( sqlite3.escape(label), userId, refId ) ) self._db.commit()
通过利用 sqlite3.escape 函数,提供的标签将被正确转义,防止任何恶意字符或注入尝试。
以上是如何保护我的 Python UPDATE 语句免受 SQL 注入?的详细内容。更多信息请关注PHP中文网其他相关文章!