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以环状形式组合排列图片并输出的方法
Mar 17 Python
Python实现HTTP协议下的文件下载方法总结
Apr 20 Python
Python中断言Assertion的一些改进方案
Oct 27 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
python binascii 进制转换实例
Jun 12 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
使用Python生成200个激活码的实现方法
Nov 22 Python
Python3.7+tkinter实现查询界面功能
Dec 24 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
Django模型验证器介绍与源码分析
Sep 08 Python
Python 测试框架unittest和pytest的优劣
Sep 26 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 output buffering缓存及程序缓存深入解析
2013/07/15 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
再探JavaScript作用域
2014/09/24 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
ECMAScript6中Map/WeakMap详解
2015/06/12 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
python贪吃蛇游戏代码
2020/04/18 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2016/01/06 面试题
执行力心得体会
2013/12/31 职场文书
六十大寿答谢词
2014/01/12 职场文书
李培根演讲稿
2014/05/22 职场文书
商场营业员岗位职责
2015/04/14 职场文书
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫