python之MySQL学习——防止SQL注入(参数化处理)

 1 import pymysql as ps
 2
 3 # 打开数据库连接
 4 db = ps.connect(host=‘localhost‘, user=‘root‘, password=‘123456‘, database=‘test‘, charset=‘utf8‘)
 5
 6 # 创建一个游标对象
 7 cur = db.cursor()
 8
 9 # 参数化处理
10 sql = "INSERT INTO USER(NAME,PASSWORD) VALUES(%s,%s)"
11
12 cur.execute(sql, (‘小黑‘, ‘123456‘))
13
14 print("OK")
15
16 # 提交事务(这个一定要主动提交,不然在数据库中操作增、删结果不改变)
17 db.commit()
18
19 # 关闭游标
20 cur.close()
21
22 # 关闭数据库
23 db.close()
时间: 2024-11-05 13:40:21

python之MySQL学习——防止SQL注入(参数化处理)的相关文章

MySQL学习笔记—SQL服务器模式汇总

MySQL学习笔记-SQL服务器模式汇总 MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式.这样每个应用程序可以根据自己的需求来定制服务器的操作模式. 模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查.这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL. 你可以用–sql-mode="modes"选项启动mysqld来设置默认SQL模式.如果你想要重设,该值还可以为空(–sql-mode ="&q

如何使用PDO查询Mysql来避免SQL注入风险?ThinkPHP 3.1中的SQL注入漏洞分析!

当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_string()函数过滤用户提交的值,但是也有缺陷.而使用PHP的PDO扩展的 prepare 方法,就可以避免 sql injection 风险. PDO(PHP Data Object) 是PHP5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的

Python数据库操作 Python操作mysql#学习猿地

# python操作mysql mysql数据库可以应用于多种编程语言,包括 PHP,Java,Go,Python 不同编程语言操作mysql,都是使用了mysql提供的API接口. 如果直接操作mysql提供的API相对复杂一些,因为不同的编程语言都有不同的封装好的包或者模块进行数据库的相关操作. 在python中也有很多的包或模块进行mysql数据库的操作,比较知名的包包括 pymysql,mysqldb... ### 安装pymysql pip install pymysql ### py

2017-2018-2 20179204《网络攻防实践》第十一周学习总结 SQL注入攻击与实践

第1节 研究缓冲区溢出的原理,至少针对两种数据库进行差异化研究 1.1 原理 在计算机内部,输入数据通常被存放在一个临时空间内,这个临时存放的空间就被称为缓冲区,缓冲区的长度事先已经被程序或者操作系统定义好了.向缓冲区内填充数据,如果数据的长度很长,超过了缓冲区本身的容量,那么数据就会溢出存储空间,而这些溢出的数据还会覆盖在合法的数据上,这就是缓冲区和缓冲区溢出的道理. 参见这篇博客缓冲区溢出攻击 1.2 oracle数据库 针对Oracle数据库缓冲区溢出攻击的研究 1.3 mysql数据库

零基础学习手工SQL注入

SQL注入介绍 SQL注入,其实就是用户浏览器提交的变量内容,应用程序(代码可能是asp.aspx.php.jsp等)对浏览器提交过来的数据未过滤,直接去数据库查询,导致把数据库里面其他内容(如管理账户和密码)查询返回到页面上.先看个<墨者学院故事会>的一个小故事: 某个镇子里,银行保险柜做为一个公共区域帮居民存储贵重物品,为了防止错拿.多拿他人物品,银行规定:限制每人每次只能带一把开自己保险柜的钥匙,取自己的东西出入.在银行安检门口有个负责检查的安检员,安检员职责就是检查进入银行保险柜取物品

python+django+mysql学习笔记

安装python 1. 从 http://www.python.org/download/ 下载最新的python版本 (我用的是python2.72, 当时最稳定的) 2. 然后一路next, 安装到你想要的目录下 3. 然后更改path, 点击控制面板->系统->高级->环境变量.在“系统变量”表单中点击叫做PATH的变量,然后编辑这个变量,把” ;C:\Python27; C;\Python27\Scripts; “加到它的结尾.当然,是Python所在的正确路径. 安装djang

Python连接MySQL数据库执行sql语句时的参数问题

由于工作需要,今天写了一个Python小脚本,其中需要连接MySQL数据库,在执行sql命令时需要传递参数,结果出问题了.在网上查了一下,发现有以下几种方式传递参数: 一.直接把sql查询语句完整写入字符串 try: connection = MySQLdb.connect(user="secsel",passwd="[email protected]",host="192.168.138.55",db="anbench")

python打造一个分析网站SQL注入的脚本

前言: 昨天晚上其实就已经写完代码.只不过向FB投稿了,打算延迟一晚上在写博客 所有才到今天早上写.好了,接下来进入正题. 思路: 1.从网站源码中爬取那些类适于:http://xxx.com/xx.php?id=xxx的链接 2.将这些爬取到的链接写入一个URL 3.加入payload 4.用正则过滤掉一些残缺不全的链接 5.将一些报错语句加入一个列表 6.从报错的语句中寻找错误 7.判断字符型注入或数字型注入 代码: 1 import requests,re,time,os 2 from t

MYSQL学习笔记——sql语句优化工具

前面讲解了很多mysql的基础知识,这一章讲解mysql的语句优化. 一.定位慢查询                                                                                 我们要对sql语句进行优化,第一步肯定是找到执行速度较慢的语句,那么怎么在一个项目里面定位这些执行速度较慢的sql语句呢?下面就介绍一种定位慢查询的方法. 1.1.数据库准备 首先创建一个数据库表: CREATE TABLE emp (empno MED