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编写的微博应用
Oct 17 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 Python
numpy自动生成数组详解
Dec 15 Python
Python实现PS滤镜的旋转模糊功能示例
Jan 20 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
Dec 05 Python
python基于C/S模式实现聊天室功能
Jan 09 Python
谈谈Python中的while循环语句
Mar 10 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
python打开文件的方式有哪些
Jun 29 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 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使用codebase生成随机数
2014/03/25 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
JavaScript 事件对象的实现
2009/07/13 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
运算符&amp;&amp;的三个不同层次
2013/04/07 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
js中getter和setter用法实例分析
2018/08/14 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
python中dict使用方法详解
2019/07/17 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
幼儿老师求职信
2014/06/30 职场文书
一份文言文检讨书
2014/09/13 职场文书
亲戚关系证明
2015/06/24 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL