如何在Python中使用参数绑定防止SQL注入攻击
在Python中使用参数绑定可以有效防止SQL注入攻击,可以通过以下步骤实现:
- 使用Python数据库API连接数据库,例如使用sqlite3库连接SQLite数据库:
import sqlite3 conn = sqlite3.connect('example.db')
- 使用带有参数占位符的SQL语句,例如查询名为“pidancode.com”的用户:
sql = 'SELECT * FROM users WHERE username = ?'
- 利用数据库API提供的参数绑定功能,将参数与占位符绑定,例如绑定参数“pidancode.com”:
username = 'pidancode.com' cursor.execute(sql, (username,))
- 执行SQL语句,查询或修改数据:
result = cursor.fetchone()
完整代码示例如下:
import sqlite3 conn = sqlite3.connect('example.db') cursor = conn.cursor() # 创建表格 cursor.execute('''CREATE TABLE users (username TEXT, password TEXT)''') # 插入数据 cursor.execute("INSERT INTO users VALUES ('pidancode.com', '123456')") cursor.execute("INSERT INTO users VALUES ('皮蛋编程', '654321')") # 查询数据 sql = 'SELECT * FROM users WHERE username = ?' username = 'pidancode.com' cursor.execute(sql, (username,)) result = cursor.fetchone() print(result) # 关闭连接 conn.close()
相关文章