全局连接变量或每次新的变量

时间:2013-07-31 17:21:16

标签: php mysql security

我正在考虑创建一个全局变量$PDO,以便在类,函数和代码中使用我的脚本。 那么这可能会发生任何安全漏洞吗?我现在每次都使用单独的连接。我应该坚持使用或使用全局PDO对象吗?

1 个答案:

答案 0 :(得分:2)

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

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