django 原生sql防止注入
在Django中使用原生SQL时,可以通过参数化查询来避免SQL注入。
下面是一个示例的Django原生SQL查询,展示了如何使用参数化查询来保护应用程序免受SQL注入攻击:
python
from django.db import connection def get_user(username): with connection.cursor() as cursor: # 创建一个参数化查询语句 query = "SELECT * FROM users WHERE username=%s" # 将参数传递到查询中 cursor.execute(query, [username]) # 获取结果集 result = cursor.fetchall() return result
上述示例中,我们使用%s作为占位符,并将要查询的值作为第二个参数传递给execute()函数。这样就能确保输入的值被正确地转义和处理,从而有效地防止SQL注入攻击。