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绘图库Matplotlib的安装
Jul 03 Python
python计算书页码的统计数字问题实例
Sep 26 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
Tensorflow实现将标签变为one-hot形式
May 22 Python
Django全局启用登陆验证login_required的方法
Jun 02 Python
python代码区分大小写吗
Jun 17 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
python空元组在all中返回结果详解
Dec 15 Python
python小程序之飘落的银杏
Apr 17 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&amp;mysql(三)
2006/10/09 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
js里面的变量范围分享
2020/07/18 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
python使用tornado实现简单爬虫
2018/07/28 Python
python中pika模块问题的深入探究
2018/10/13 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
机械制造专业个人的自我评价
2013/12/28 职场文书
工作过失检讨书
2014/02/23 职场文书
2016年记者节感言
2015/12/08 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers