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中json格式数据输出的简单实现方法
Oct 31 Python
使用Turtle画正螺旋线的方法
Sep 22 Python
Python中的上下文管理器和with语句的使用
Apr 17 Python
对Python 内建函数和保留字详解
Oct 15 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
在pycharm中配置Anaconda以及pip源配置详解
Sep 09 Python
python爬虫爬取幽默笑话网站
Oct 24 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
解决Keras中CNN输入维度报错问题
Jun 29 Python
python某漫画app逆向
Mar 31 Python
python全面解析接口返回数据
Feb 12 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二分查找二种实现示例
2014/03/12 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
2012/02/02 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
修改node.js默认的npm安装目录实例
2018/05/15 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
原生js实现购物车功能
2020/09/23 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
python函数返回多个值的示例方法
2013/12/04 Python
Python编写屏幕截图程序方法
2015/02/18 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
戴森美国官网:Dyson美国
2016/09/11 全球购物
博士学位自我鉴定范文
2013/12/26 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
公司宣传语大全
2015/07/13 职场文书