SQL注入发生在将用户输入拼接到SQL语句中的任何位置,尤其是用format()、%或+拼接时;必须使用参数化查询,并对表名、字段名等结构化部分做白名单校验。SQL注入到底在哪儿发生不是所有拼接字符串的地方都危险,但所有用 format()、% 或 + 拼接用户输入进 SQL 语句的位置,都是高危点。比如 SELECT * FROM users WHERE name = '{}'".format(request.args.get('name')) —— 这种写法只要用户传入 ' OR '1'='1,就直接绕过验证。本质问题不是“用了原生 SQL”,而是“把不可信数据当代码执行”。ORM 也不是银弹:手写 filter("name = '{}'".format(...)) 同样会中招。原生 SQL 必须用 execute() 的参数化接口Python DB-API(如 sqlite3、psycopg2、pymysql)都支持占位符,但语法不统一,混用就会出错:sqlite3 只认 ? 或 :name,不支持 %spsycopg2 只认 %s,且必须用元组或字典传参,不能用列表pymysql 支持 %s,但不支持命名参数 %(...)s(除非开启 named=True)错误示例:cursor.execute("SELECT * FROM user WHERE id = %s", [user_id]) —— 在 psycopg2 中会报 TypeError: not all arguments converted,因为期望元组,给了列表。立即学习“Python免费学习笔记(深入)”;正确写法(以 psycopg2 为例):cursor.execute("SELECT * FROM user WHERE id = %s", (user_id,))Django ORM 不等于自动免疫Django 查询集默认安全,但三个地方容易翻车:extra() 和 raw():直接执行原始 SQL,参数必须手动用 params=... 传入,不能拼接filter(**{field_name: value}):如果 field_name 来自用户输入(比如搜索字段名),会触发动态字段注入Q 对象组合时用了 eval() 或字符串格式化构造表达式典型错误:User.objects.filter(**{request.GET.get('sort_by', 'id'): 'asc'}) —— 用户传 sort_by=__dict__ 就能读取内部对象结构。 Julius AI Julius AI是一款功能强大的AI数据分析工具,可以快速分析和可视化复杂数据。
Python Web开发如何防范SQL注入_使用参数化查询与ORM实践
张小明
前端开发工程师
【2026 AGI实战分水岭】:从SITS2026原型看通用智能系统4层验证体系——你还在用准确率衡量AGI吗?
第一章:SITS2026案例:AGI原型系统展示 2026奇点智能技术大会(https://ml-summit.org) 系统架构概览 SITS2026 AGI原型系统采用分层认知架构,整合多模态感知、符号推理与具身学习模块。核心运行于异构硬件集群之上,支持实时跨模态…
K8s Operator 的开发入门
Kubernetes Operator 开发入门:解锁自动化运维新姿势 在云原生时代,Kubernetes已成为容器编排的事实标准,而Operator则是扩展K8s能力的核心模式。它通过自定义控制器(Controller)和资源(CRD)&a…
手把手教你用XCKU5P FPGA搭建Cameralink图像采集系统(Vivado 2022.2实战)
手把手教你用XCKU5P FPGA搭建Cameralink图像采集系统(Vivado 2022.2实战) 在工业视觉和高速图像处理领域,Cameralink接口凭借其稳定性和高带宽特性,依然是许多专业相机的首选。而Kintex UltraScale系列FPGA,特别是XCKU…
【噪声控制】改进的灰狼优化算法和条件重初始化策略进行模型无主动噪声控制【含Matlab源码 15345期】
💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…
老电脑6G内存也能跑RNA-seq?我的Linux双系统实战避坑记录(附完整代码)
6G内存旧电脑玩转RNA-seq:双系统环境搭建与全流程优化指南 当实验室的高性能服务器排期爆满,而手头只有一台6G内存的老旧笔记本电脑时,许多生物信息学初学者会陷入两难境地。本文将分享如何在资源受限环境下,通过WinLinux双系统方…
别再只盯着Leader-Follower了!手把手用Python模拟5种机器人编队控制(附避坑心得)
用Python实战5种机器人编队算法:从虚拟结构到人工势场的避坑指南 当一群无人机在夜空拼出公司Logo,或者扫地机器人以雁阵模式高效覆盖房间时,背后是编队控制算法的精密调度。本文将通过Python仿真,带你穿透五种经典算法的核心逻辑…