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创建线程示例
May 06 Python
python列表操作实例
Jan 14 Python
利用Python画ROC曲线和AUC值计算
Sep 19 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
Jun 09 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
python列表推导式操作解析
Nov 26 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
关于多元线性回归分析——Python&amp;SPSS
Feb 24 Python
python tqdm库的使用
Nov 30 Python
Python爬虫开发与项目实战
Dec 16 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
php把数组值转换成键的方法
2015/07/13 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
urllib2自定义opener详解
2014/02/07 Python
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
python脚本设置超时机制系统时间的方法
2016/02/21 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
windows下添加Python环境变量的方法汇总
2018/05/14 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
高中生毕业学习总结的自我评价
2013/11/14 职场文书
2014年国培研修感言
2014/03/09 职场文书
初中学习计划书范文
2014/09/15 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
2014年建筑工作总结
2014/11/26 职场文书
安全责任协议书范本
2016/03/23 职场文书