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 列表list使用介绍
Nov 30 Python
Python操作CouchDB数据库简单示例
Mar 10 Python
Django自定义分页与bootstrap分页结合
Feb 22 Python
Python实现的文本简单可逆加密算法示例
May 18 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
python导入模块交叉引用的方法
Jan 19 Python
python3 selenium自动化测试 强大的CSS定位方法
Aug 23 Python
python实现tail -f 功能
Jan 17 Python
Python实现疫情通定时自动填写功能(附代码)
May 27 Python
Python操作Elasticsearch处理timeout超时
Jul 17 Python
python3处理word文档实例分析
Dec 01 Python
python 模拟登陆163邮箱
Dec 15 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
利用js调用后台php进行数据处理原码
2006/10/09 PHP
php 各种应用乱码问题的解决方法
2010/05/09 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
jQuery AnythingSlider滑动效果插件
2010/02/07 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
Python json模块使用实例
2015/04/11 Python
Python字符串处理之count()方法的使用
2015/05/18 Python
python删除特定文件的方法
2015/07/30 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
用Django写天气预报查询网站
2018/10/21 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
python中对数据进行各种排序的方法
2019/07/02 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
C语言笔试题
2014/09/04 面试题
Linux操作面试题
2015/02/11 面试题
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
死亡赔偿协议书
2015/01/28 职场文书
航班延误投诉信
2015/07/02 职场文书
吧主申请感言怎么写
2015/08/03 职场文书