php - 全局连接变量或每次都是新的

标签 php mysql security

我正在考虑创建一个全局变量 $PDO 以在类、函数和代码中与我的脚本一起使用。 那么这是否会导致任何安全漏洞?
我现在每次都使用单独的连接。我应该坚持这个还是使用全局 PDO 对象?

最佳答案

这实际上取决于您的应用程序,因为在某些情况下您可能想要管理多个连接。但是,在许多情况下,在处理单个请求的过程中只打开一个连接以供使用是有意义的。这有助于消除在整个代码中打开/关闭连接的开销。我猜想在大多数情况下,安全性不会是一个太大的问题,除非您计划将数据库连接移交给一组代码,这些代码不应具有与该特定连接关联的数据库权限(可能是您的库或服务)不控制)。

我还强烈建议您研究依赖注入(inject)的概念,因为在大多数情况下,最好将实例化的 DB 对象传递给需要它的代码片段,而不是将其视为全局对象并仅使用global 关键字来访问它。这有助于您避免需要在每个类/函数中复制代码来检查数据库是否有连接等。如果您有一个单独的类执行此操作,并且您可以将该对象传递给需要它的类,则可以保证该对象将执行它应该执行的操作。

关于php - 全局连接变量或每次都是新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17976887/

相关文章:

php - 我的 PHP MySQL while 循环不返回结果

ios - SecKeyDecrypt 在 iOS 中并不总是使用 RSA 解密

iphone - 企业 iPhone 应用程序无线分发的安全性 - OTA iOS

javascript - 关于向服务器提交正确数据的 javascript 的安全性

php - 在您的实时站点上隐藏显示 mysql 查询是否安全

php - PHP 的代码安全性

php - 处理数据库错误的最佳方法

php - PDO 字符集从 iso-8859-2 到 UTF8

mysql - 用于获取最后一个日期项目的 SQL 查询

php - 对 mysql 查询的每个单独结果使用 while 语句