当前位置: 首页 > 编程笔记 >

Python sql注入 过滤字符串的非法字符实例

微生昌胤
2023-03-14
本文向大家介绍Python sql注入 过滤字符串的非法字符实例,包括了Python sql注入 过滤字符串的非法字符实例的使用技巧和注意事项,需要的朋友参考一下

我就废话不多说了,还是直接看代码吧!

#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注入 过滤字符串的非法字符实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍C#实现简单过滤非法字符实例,包括了C#实现简单过滤非法字符实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现简单过滤非法字符的方法。分享给大家供大家参考,具体如下: 希望本文所述对大家C#程序设计有所帮助。

  • 在我的类中,在测试下,我有一些私有服务字段和一个java类型的私有字段。 和注释极大地创建了模拟和注入服务字段。但是,如何为字段创建模拟,因为Mockito不允许为类创建模拟? 我看到的一个选择是使用接口而不是字段类型,但这需要更改类的代码,我不喜欢这种想法。 更新:类定义如下 由于某些原因,我们没有使用Spring集成测试功能,也不想在不同类型的注入(例如ctor注入)中返工

  • 问题内容: XML规范定义了XML文档中允许的Unicode字符的子集:http : //www.w3.org/TR/REC-xml/#charsets。 如何从Java中的字符串中过滤掉这些字符? 简单的测试用例: 问题答案: 找出XML的所有无效字符并非易事。您需要从Xerces调用或重新实现XMLChar.isInvalid(), http://kickjava.com/src/org/ap

  • 问题内容: 我正在研究AngularJS教程,并了解的基础知识 但是,开箱即用的实现似乎仅限于将项目列表过滤为输入的确切单词或短语。 示例:如果查询是“ table cloth”,则结果列表可以包含带有短语“ Decorative table cloth”的结果,但由于过滤器只是一个连续的搜索字符串,因此将不包括“ Table fortable装饰布”。 我知道可以添加自定义过滤器,但乍一看似乎主

  • 问题内容: 我喜欢过滤掉字符串长度不等于10的数据。 如果我尝试过滤掉列A或B的字符串长度不等于10的任何行,则尝试这样做。 这工作缓慢,但正在工作。 但是,当A中的数据不是字符串而是数字(有时在read_csv读取输入文件时解释为数字)时,有时会产生错误。 我相信应该有更高效,更优雅的代码来代替。 根据下面的答案和评论,我找到的最简单的解决方案是: 要么 要么 问题答案: 应用于filex.cs

  • 问题内容: 我试图获取记录在“标题”中,然后是X个字符。 注意:并非所有记录都包含标题字段。 我努力了: 结果,我得到这个错误: 我该如何解决? 问题答案: 您需要考虑到某些文档可能具有空字段。因此,您可以使用常规的空安全运算符。另外,请确保改用POST方法:

  • 本文向大家介绍ASP.NET过滤HTML字符串方法总结,包括了ASP.NET过滤HTML字符串方法总结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ASP.NET过滤HTML字符串的方法,供大家参考使用,具体代码如下:

  • 本文向大家介绍python清除字符串里非字母字符的方法,包括了python清除字符串里非字母字符的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python清除字符串里非字母字符的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Python程序设计有所帮助。