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常用小技巧总结
Jun 01 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
win10环境下python3.5安装步骤图文教程
Feb 03 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 Python
Django 用户认证组件使用详解
Jul 23 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
Feb 18 Python
python 实现关联规则算法Apriori的示例
Sep 30 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
python 批量将中文名转换为拼音
Feb 07 Python
python 下载文件的几种方式分享
Apr 07 Python
Python编程根据字典列表相同键的值进行合并
Oct 05 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二维数组用键名分组相加实例函数
2013/11/06 PHP
php命名空间学习详解
2014/02/27 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
js模仿jquery的写法示例代码
2013/06/16 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
vant实现购物车功能
2020/06/29 Javascript
python批量生成本地ip地址的方法
2015/03/23 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
python 命名规范知识点汇总
2020/02/14 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
python sleep和wait对比总结
2021/02/03 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
中科软测试工程师面试题
2012/06/16 面试题
实习生的自我评价
2014/01/08 职场文书
国贸专业个人求职信范文
2014/01/08 职场文书
二年级体育教学反思
2014/01/15 职场文书
便利店的创业计划书
2014/01/15 职场文书
运动会邀请函范文
2014/01/31 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
初中信息技术教学反思
2016/02/16 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
四十九个javascript小知识实用技巧
2021/11/20 Javascript
Nginx速查手册及常见问题
2022/04/07 Servers