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简单猜数游戏实例
Jul 09 Python
python实现12306火车票查询器
Apr 20 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
python django使用haystack:全文检索的框架(实例讲解)
Sep 27 Python
Python中多个数组行合并及列合并的方法总结
Apr 12 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
关于阿里云oss获取sts凭证 app直传 python的实例
Aug 20 Python
Python调用.NET库的方法步骤
Dec 27 Python
Pytorch DataLoader 变长数据处理方式
Jan 08 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 Python
Python list列表删除元素的4种方法
Nov 01 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学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
微信小程序 解决swiper不显示图片的方法
2017/01/04 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
详解Swift中属性的声明与作用
2016/06/30 Python
Python 多线程的实例详解
2017/09/07 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
Python实现汇率转换操作
2020/05/03 Python
原装进口全世界:天猫国际
2016/08/03 全球购物
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
大学生求职推荐信
2013/11/27 职场文书
个人求职信范文分享
2014/01/06 职场文书
计算机专业职业规划
2014/02/28 职场文书
幼儿园秋游感想
2014/03/12 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
义诊活动总结
2015/02/04 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
MySQL中varchar和char类型的区别
2021/11/17 MySQL
HTML中的表单元素介绍
2022/02/28 HTML / CSS
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS