当前位置: 首页 > news >正文

python execute() 使用%s 拼接sql 避免sql注入攻击 好于.format

1 execute(参数一:sql 语句)

# 锁定当前查询结果行
cursor.execute("SELECT high, low, vol FROM table_name WHERE symbol = %s FOR UPDATE;"% (symbol,))

2 .format()

cursor.execute("SELECT high, low, vol FROM table_name WHERE symbol = {} FOR UPDATE;".format(symbol)) 

3 结论

使用 .format() 方法拼接 SQL 语句确实能够解决一些 SQL 注入攻击问题,
但并不能完全避免 SQL 注入攻击。
原因是,.format() 方法并没有对参数进行任何的安全检查和过滤,
如果参数中包含某些 SQL 语句关键字或特殊字符,仍然可能会导致 SQL 注入攻击。相比之下,使用占位符(如 %s、? 或 :name)的方式可以更好地避免 SQL 注入攻击,
因为这些占位符会被数据库驱动程序自动转义和过滤。
因此,使用占位符的 SQL 查询语句比手动拼接 SQL 语句和参数更加安全。

http://www.lryc.cn/news/165159.html

相关文章:

  • RPC项目解析(1)
  • 点云从入门到精通技术详解100篇-基于 RGB 图像与点云融合的三维点云分割算法及成像系统
  • JDK8新特性
  • X86_64函数调用汇编程序分(2)
  • 组件传值之ref(解决父传子动态绑定问题)
  • vscode-server
  • ubuntu 20.04安装开发环境总结_安装python
  • 尚硅谷_宋红康_IntelliJ IDEA 常用快捷键一览表
  • Java设计模式之建造者模式详解(Builder Pattern)
  • TCP的滑动窗口与拥塞控制
  • MySQL更新语句执行过程
  • Matlab图像处理-彩色图像基础
  • MATLAB算法实战应用案例精讲-【数模应用】数据中台
  • el-form动态检验无法生效问题(已解决)
  • 【python】代码学习过程问题总结
  • Qt应用开发(基础篇)——菜单 QMenu
  • MySQL-DDL语句
  • 总结987
  • 【服务器 | 测试】如何在centos 7上面安装jmeter
  • 20.04部署cartographer
  • djangoMTV初探
  • Minecraft--基于云服务器搭建自己的服务器--简易搭建
  • 【数据结构与算法】十大经典排序算法
  • Android 12.0 SystemUI下拉状态栏定制化之隐藏下拉通知栏布局功能实现(一)
  • 665. 非递减数列-先改后验法
  • 调教 文心一言 生成 AI绘画 提示词(Midjourney)
  • 半导体制造工艺(一)光刻
  • 【海思SS626 | 开发环境】VMware17安装Ubuntu 18.04.6
  • Vue知识系列(3)每天10个小知识点
  • Java基础入门·多线程·线程池ThreadPool篇