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编写Linux系统守护进程实例
Feb 03 Python
用于统计项目中代码总行数的Python脚本分享
Apr 21 Python
Python字符串替换实例分析
May 11 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
用python编写第一个IDA插件的实例
May 29 Python
python中ASCII码和字符的转换方法
Jul 09 Python
Python语言快速上手学习方法
Dec 14 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
python上传时包含boundary时的解决方法
Apr 08 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
python中使用input()函数获取用户输入值方式
May 03 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/10/09 PHP
php win下Socket方式发邮件类
2009/08/21 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
js省市联动效果完整实例代码
2015/12/09 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
vue2.0多条件搜索组件使用详解
2020/03/26 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
解读ES6中class关键字
2017/11/20 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
Python基于贪心算法解决背包问题示例
2017/11/27 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
校园新闻广播稿
2014/01/10 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
营业员岗位职责
2015/02/11 职场文书
单位病假条范文
2015/08/17 职场文书
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
Python基础 括号()[]{}的详解
2021/11/07 Python
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js