Python sql注入 过滤字符串的非法字符实例


Posted in Python onApril 03, 2020

我就废话不多说了,还是直接看代码吧!

#coding:utf8
#在开发过程中,要对前端传过来的数据进行验证,防止sql注入攻击,其中的一个方案就是过滤用户传过来的非法的字符


def sql_filter(sql, max_length=20):
 dirty_stuff = ["\"", "\\", "/", "*", "'", "=", "-", "#", ";", "<", ">", "+", "%", "$", "(", ")", "%", "@","!"]
 for stuff in dirty_stuff:
  sql = sql.replace(stuff, "")
 return sql[:max_length]


username = "1234567890!@#!@#!@#$%======$%"

username = sql_filter(username) # SQL注入
print username

# 输出结果是:1234567890

补充知识:python解决sql注入以及特殊字符

python往数据库插入数据,

基础做法是:

cur=db.cursor()
sql = "INSERT INTO test2(cid, author, content) VALUES (1, '1', 'aa')"
cur.execute(sql,())

也可以这样:

cur=db.cursor()
sql = "INSERT INTO test2(cid, author, content) VALUES (%s, '%s', '%s')"
sql=sql%('2','2','bb')
cur.execute(sql,())

但是当含有特殊一点的字符时就有问题了,比如单引号,%等,甚至会被sql注入。

和其他语言一样,python也他的方法来解决sql注入。

cur=db.cursor()
sql = "INSERT INTO test2(cid, author, content) VALUES (%s, %s, %s)"
cur.execute(sql,('3','3','c%c'))

注意,后面2个%s的前后单引号去掉了。

结果如下:

Python sql注入 过滤字符串的非法字符实例

以上这篇Python sql注入 过滤字符串的非法字符实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
详解Python使用simplejson模块解析JSON的方法
Mar 24 Python
Python reduce()函数的用法小结
Nov 15 Python
python监控键盘输入实例代码
Feb 09 Python
python爬取淘宝商品详情页数据
Feb 23 Python
python实现数据库跨服务器迁移
Apr 12 Python
对python实现合并两个排序链表的方法详解
Jan 23 Python
手把手教你pycharm专业版安装破解教程(linux版)
Sep 26 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
tensorflow常用函数API介绍
Apr 19 Python
详解pycharm自动import所需的库的操作方法
Nov 30 Python
基于Python编写一个监控CPU的应用系统
Jun 25 Python
python传到前端的数据,双引号被转义的问题
Apr 03 #Python
Django实现将一个字典传到前端显示出来
Apr 03 #Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 #Python
Django import export实现数据库导入导出方式
Apr 03 #Python
Django用户身份验证完成示例代码
Apr 03 #Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 #Python
python 的topk算法实例
Apr 02 #Python
You might like
php 特殊字符处理函数
2008/09/05 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
php中的常用魔术方法总结
2013/08/02 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
html读出文本文件内容
2007/01/22 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
python getopt 参数处理小示例
2009/06/09 Python
python实现的简单猜数字游戏
2015/04/04 Python
python+opencv识别图片中的圆形
2020/03/25 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
python实现求特征选择的信息增益
2018/12/18 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
django实现类似触发器的功能
2019/11/15 Python
python中p-value的实现方式
2019/12/16 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
优秀应届毕业生自荐信
2013/11/16 职场文书
个性发展自我评价
2014/02/11 职场文书
动物科学专业求职信
2014/07/27 职场文书
个性发展自我评价2015
2015/03/09 职场文书
可可西里观后感
2015/06/08 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书