python - PyMySQL 参数化查询如何在内部工作,是否安全?
问题描述
我正在使用 MySQL 服务器和库aiomysql在 Python 上编写一个小型 REST API,它使用库PyMySQL的接口和内部结构,因此实际查询由 PyMySQL 发送到数据库。
查询示例:
cur.execute('SELECT * FROM clients WHERE id=%s;', args=(1, )
我的问题是 PyMySQL 将 args 元组中的所有数据转换为strings,因此查询必须只包含 '% '占位符。我曾经认为安全转义是通过使用类型比较来完成的(它不会从字符串参数的注入中保存,但无论如何),但显然它没有,所以我有几个问题: PyMySQL 参数化查询如何在内部执行安全转义,为什么将所有内容都转换为字符串,是否安全?
解决方案
推荐阅读
- machine-learning - 有没有办法测量图像的哪些部分对分类器来说是困难的?
- vue.js - 如何实现可重用的 vuetify 对话框
- sql - 在这个例子中,MSSQL 中的 ORDER BY 是如何工作的?
- yaml - YAML,linting - 语法错误 - 未知转义字符'
- php - 如何提取在obj中作为数组传递的元素,然后是userdata
- php - 如何在另一个下拉选项中自动选择下拉列表中的选项
- javascript - 使用 JavaScript 将键值从另一个数组中添加到数组中的所有对象
- java - 如何让 Mono Void 在另一个 Mono Void 中返回?
- python - Python Numpy 值错误:操作数无法与形状一起广播 (122,) (112,)
- data-structures - Middleman 或 Jekyll 可以处理数据关系吗?