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中list循环语句用法实例
Nov 10 Python
python+pyqt5编写md5生成器
Mar 18 Python
Python基于scipy实现信号滤波功能
May 08 Python
python线程中的同步问题及解决方法
Aug 29 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
python绘制规则网络图形实例
Dec 09 Python
Python list运算操作代码实例解析
Jan 20 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
学python最电脑配置有要求么
Jul 05 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 Python
理解深度学习之深度学习简介
Apr 14 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
php实现cc攻击防御和防止快速刷新页面示例
2014/02/13 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
jQuery代码优化 事件委托篇
2011/11/01 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
Bootstrap基本样式学习笔记之图片(6)
2016/12/07 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
python处理Excel xlrd的简单使用
2017/09/12 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
通过实例了解python property属性
2019/11/01 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
电子商务毕业生求职信
2013/11/10 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
七年级生物教学反思
2016/02/20 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
Python函数中apply、map、applymap的区别
2021/11/27 Python
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA