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中optionParser模块的使用方法实例教程
Aug 29 Python
Python是编译运行的验证方法
Jan 30 Python
举例讲解Python中is和id的用法
Apr 03 Python
python通过post提交数据的方法
May 06 Python
python测试mysql写入性能完整实例
Jan 18 Python
python实现读Excel写入.txt的方法
Apr 29 Python
PyQt5 pyqt多线程操作入门
May 05 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
python连接PostgreSQL过程解析
Feb 09 Python
python利用百度云接口实现车牌识别的示例
Feb 21 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
jupyter notebook快速入门及使用详解
Nov 13 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
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
Python实现SMTP发送邮件详细教程
2021/03/02 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
通过python实现windows桌面截图代码实例
2020/01/17 Python
python画图常规设置方式
2020/03/05 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
项目资料员岗位职责
2013/12/10 职场文书
高级销售求职信
2014/02/21 职场文书
大学生暑期实践感言
2014/02/26 职场文书
教师专业自荐信
2014/05/31 职场文书
促销活动总结怎么写
2014/06/25 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python