加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在python中防止SQL注入

发布时间:2020-12-16 23:26:08 所属栏目:Python 来源:网络整理
导读:我在 Python中有一些代码在sqlite DB中设置char(80)值. 该字符串是通过文本输入字段直接从用户获取的,并使用JSON结构中的POST方法发送回服务器. 在服务器端,我当前将字符串传递给调用SQL UPDATE操作的方法. 它有效,但我知道它根本不安全. 我希望客户端无论如
我在 Python中有一些代码在sqlite DB中设置char(80)值.

该字符串是通过文本输入字段直接从用户获取的,并使用JSON结构中的POST方法发送回服务器.

在服务器端,我当前将字符串传递给调用SQL UPDATE操作的方法.

它有效,但我知道它根本不安全.

我希望客户端无论如何都是不安全的,因此任何保护都应放在服务器端.我可以做些什么来再次保护UPDATE操作SQL注入?

我正在寻找的是一个“引用”文本以便它不会混淆SQL解析器的函数.我希望这样的功能存在,但找不到它.

编辑:
这是我当前设置char字段名称标签的代码:

def setLabel( self,userId,refId,label ):
    self._db.cursor().execute( """
        UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""",( label,refId) )
    self._db.commit()

解决方法

从文档:
con.execute("insert into person(firstname) values (?)",("Joe",))

这逃脱了“乔”,所以你想要的是

con.execute("insert into person(firstname) values (?)",(firstname_from_client,))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读