PHP:::全局$config:::安全吗?

PHP:::全局$config:::安全吗?,php,global,Php,Global,可能重复: 使用这样的东西让我担心: <? global $config; ?> 假设我将DB连接和用于字符串的salt存储在$config global中 现在是否有可能使用: <? global $config; ?> 我将来会有问题吗 如果是这样,如何利用这一点 我将来会有问题吗 如果是这样,如何利用这一点 全局变量的问题不在于它们打开了一扇可以直接利用的魔法门。相反,全局变量往往会使应用程序的设计更加混乱,因为不清楚哪些函数/类/模块依赖于全局变量。

可能重复:

使用这样的东西让我担心:

<? global $config; ?>

假设我将DB连接和用于字符串的salt存储在$config global中

现在是否有可能使用:

<? global $config; ?>

我将来会有问题吗

如果是这样,如何利用这一点

我将来会有问题吗

如果是这样,如何利用这一点

全局变量的问题不在于它们打开了一扇可以直接利用的魔法门。相反,全局变量往往会使应用程序的设计更加混乱,因为不清楚哪些函数/类/模块依赖于全局变量。因此,它更难维护。因此,它们包含bug的概率更高,而这些bug又可能导致迄今为止未知的安全缺陷。因此,程序员不喜欢全球化

我将来会有问题吗

如果是这样,如何利用这一点

全局变量的问题不在于它们打开了一扇可以直接利用的魔法门。相反,全局变量往往会使应用程序的设计更加混乱,因为不清楚哪些函数/类/模块依赖于全局变量。因此,它更难维护。因此,它们包含bug的概率更高,而这些bug又可能导致迄今为止未知的安全缺陷。因此,程序员不喜欢全局性的

global关键字只是使该变量可供通常无法访问它的函数访问。它不允许外部脚本访问它,这纯粹是文件本身是否可访问的问题。

简短的回答是否



global关键字只是使该变量可供通常无法访问它的函数访问。它不能使外部脚本访问它,这纯粹是文件本身是否可访问的问题。

为什么您认为它可以被利用?还有,您所说的“我用于字符串的盐”是什么意思?哪些字符串?攻击者是否可能获取或使用全局$config中的DB信息或salt来实施攻击?您应该为每个密码使用不同的salt,而不是一个salt。不一定,但使用MD5散列您的密码可以。使用真正的密码哈希函数。编辑:如果攻击者可以访问您在全局变量中声明的内容,则他已经在。您应该首先更加关注不让任何攻击者的代码在您的服务器上执行,这样这个问题就变得无关紧要了。为什么您认为它会被利用?还有,您所说的“我用于字符串的salt”是什么意思?哪些字符串?攻击者是否可能获取或使用全局$config中的DB信息或salt来实施攻击?您应该为每个密码使用不同的salt,而不是一个salt。不一定,但使用MD5散列您的密码可以。使用真正的密码哈希函数。编辑:如果攻击者可以访问您在全局变量中声明的内容,则他已经在。首先,您应该更加关注不让任何攻击者的代码在您的服务器上执行,这样这个问题就变得无关紧要了。我的问题不是关于应用程序设计,而是关于应用程序安全。纯粹从安全角度来看,使用全局$config是否会产生负面影响?@DanKanze这是一个完全正确的答案。他直截了当地告诉你“将来会有什么问题”(混乱的应用程序设计),仅仅使用全局变量并不能为漏洞利用打开一扇“魔法门”。@Dan Kanze:我的回答直接回答了一个问题
全局变量会使应用程序不安全吗
。答案是否定的,这本身并不是。我接着解释了为什么程序员说要避免全局变量,以及它们如何导致问题的产生。显然,我们讨论的是一对重复使用的变量。我的问题不是关于应用程序设计,而是关于应用程序安全。纯粹从安全角度来看,使用全局$config是否会产生负面影响?@DanKanze这是一个完全正确的答案。他直截了当地告诉你“将来会有什么问题”(混乱的应用程序设计),仅仅使用全局变量并不能为漏洞利用打开一扇“魔法门”。@Dan Kanze:我的回答直接回答了一个问题
全局变量会使应用程序不安全吗
。答案是否定的,这本身并不是。然后我继续解释为什么程序员说要避免全局性,以及它们如何导致问题。是的,我理解。但让我再把它放下。全局$config包含在我正在使用的函数中。这无关紧要。如果包含应用程序的文件是安全的,则应用程序中的代码是安全的。黑客实际上必须能够读取源文件(在这种情况下,他们只能读取文件中的密码等)。他们无法访问正在运行的脚本中的变量**始终存在SQL注入或其他类型的安全缺陷的风险,但这些缺陷与全局关键字没有直接关系。如果攻击者无法访问包含敏感数据的文件,并且攻击者无法在您的服务器上执行自己的代码,则您基本上可以。编辑:beatenThank you这是我一直在寻找的答案。@DanKanze:如果这回答了你的问题,你应该接受答案(点击旁边的勾号)。是的,明白了。但让我再把它放下。全局$config包含在我正在使用的函数中。这无关紧要。如果包含应用程序的文件是安全的,则应用程序中的代码是安全的。黑客必须能够读取源文件(在这种情况下,他们只能读取文件中的密码等)