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通过post提交数据的方法
May 06 Python
以windows service方式运行Python程序的方法
Jun 03 Python
使用Python3编写抓取网页和只抓网页图片的脚本
Aug 20 Python
详解Python编程中包的概念与管理
Oct 16 Python
python timestamp和datetime之间转换详解
Dec 11 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
快速排序的四种python实现(推荐)
Apr 03 Python
python使用Pandas库提升项目的运行速度过程详解
Jul 12 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
python中如何设置代码自动提示
Jul 15 Python
jupyter notebook远程访问不了的问题解决方法
Jan 11 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类
2006/11/27 PHP
深入理解PHP原理之异常机制
2010/08/21 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
Python中time模块和datetime模块的用法示例
2016/02/28 Python
numpy中的高维数组转置实例
2018/04/17 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
python版DDOS攻击脚本
2019/06/12 Python
关于Python解包知识点总结
2020/05/05 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
英国最大的化装舞会服装网站:Fancydress.com
2017/08/15 全球购物
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
什么是servlet链?
2014/07/13 面试题
大学生实习鉴定评语
2014/04/25 职场文书
经销商年会策划方案
2014/05/29 职场文书
大专生求职信
2014/06/29 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python