当前位置: 首页 > 面试题库 >

Python最佳实践和最安全的方法来连接MySQL和执行查询

詹亮
2023-03-14
问题内容

在mysql上运行查询的最安全方法是什么,我知道MySQL和SQL注入涉及的危险。

但是,我不知道如何运行查询以防止注入其他用户(Web客户端)可以操纵的变量。我曾经编写自己的转义函数,但显然这是“未完成”的。

我应该使用什么,以及如何使用它来通过python在MySQL数据库上安全地进行查询和插入,而又不会冒mysql注入的风险?


问题答案:

为避免注入,请使用executewith
%s代替每个变量,然后通过列表或元组传递值作为的第二个参数execute。这是文档中的示例

c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""", (max_price,))

请注意,这是使用 逗号 而不是 (这将是直接字符串替换,不会转义)。 不要这样做

c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""" % (max_price,))

此外,'%s'如果参数是字符串,则不需要在位置保持器()周围加上引号。



 类似资料:
  • 下面,我们将会回顾常见的安全原则,并介绍在使用 Yii 开发应用程序时,如何避免潜在安全威胁。 大多数这些原则并非您独有,而是适用于网站或软件开发, 因此,您还可以找到有关这些背后的一般概念的进一步阅读的链接。 基本准则 无论是开发何种应用程序,我们都有两条基本的安全准则: 过滤输入 转义输出 过滤输入 过滤输入的意思是,用户输入不应该认为是安全的,你需要总是验证你获得的输入值是在允许范围内。 比

  • Overview The term “production” refers to the stage in the software lifecycle when an application or API is generally available to its end-users or consumers. In contrast, in the “development” stage, y

  • 本篇文档的目的在于如何让系统管理员或开发者用尽可能少的时间部署一个安全的 web 站点或应用,即 SSL 和 TLS 部署最佳实践。

  • 我试图了解如何最好地设计基于IIS/ASP.NET的websocket应用程序,特别是关于并发限制。 我已经阅读了关于“并发Websocket连接”以及如何调整各种值的所有IIS/ASP.NET文献--但是,当谈到websockets时,“并发”的定义是什么?如果我打开了一个websocket,并且它处于空闲状态,这是在“使用”连接吗?空闲websockets是否计入连接使用总数,或者只在发送/接

  • 本文向大家介绍Nginx WebServer最佳安全实践,包括了Nginx WebServer最佳安全实践的使用技巧和注意事项,需要的朋友参考一下 NGINX是一个免费的开源高性能HTTP服务器和反向代理,也称为IMAP / POP3代理服务器。NGINX以其高性能,稳定性,丰富的功能集,简单的配置和低资源消耗而闻名。在本文中,我们将解释“ Nginx WebServer最佳安全实践”。 sysc

  • 我目前正在做一个使用Django API服务器和运行React的NodeJS服务器的项目。在开发中,我们在8000端口上运行Django,在8080端口上运行NodeJS,目前React负责渲染页面并与Django API交互,Django API为React提供数据。为了让React调用Django API,我们在Django中启用了CORS,因为它们位于不同的端口上。 我的问题如下: > 允许