为什么在使用php时用xml存储数据更安全?

为什么在使用php时用xml存储数据更安全?,php,xml,security,Php,Xml,Security,我想知道是否有人可以帮助我们了解,当您将页面的各个部分格式化为XML以供以后提取和使用时,PHP是如何变得更加安全的。基本上,我们在“index.php”中设置了一个函数,负责创建页面。调用时,它将获取一系列包含数据库连接信息和站点设置的XML文件。然后,它将这些内容解析为一个数组,以便在代码中使用。随后,对整个页面设置和小部件设置执行相同的操作 现在我承认,我只是不喜欢XML。对于任何潜在的好处来说都过于冗长,对于一般的数据存储来说也是一个糟糕的选择(为什么不使用数据库?),但我的同事坚持认为

我想知道是否有人可以帮助我们了解,当您将页面的各个部分格式化为XML以供以后提取和使用时,PHP是如何变得更加安全的。基本上,我们在“index.php”中设置了一个函数,负责创建页面。调用时,它将获取一系列包含数据库连接信息和站点设置的XML文件。然后,它将这些内容解析为一个数组,以便在代码中使用。随后,对整个页面设置和小部件设置执行相同的操作

现在我承认,我只是不喜欢XML。对于任何潜在的好处来说都过于冗长,对于一般的数据存储来说也是一个糟糕的选择(为什么不使用数据库?),但我的同事坚持认为,由于XML,我们的代码在某种程度上更加安全。他没有解释原因,但还是被说服了。你知道为什么会这样吗


更糟糕的是,XML文件被解析为全局变量,似乎如果攻击进入了索引,攻击者所需要做的就是循环通过$GLOBALS来检索数据库凭据和代码中其他有价值的信息。这似乎破坏了将数据存储在XML中可能带来的任何好处。那么我在这里错过了什么?有什么想法吗?

XML文件并非天生安全或不安全,而是如何使用它们。XML只是一种数据格式。在这种情况下,听起来数据的分离方式对安全性没有任何显著影响


直接回答:不是这样。

XML文件并非天生安全或不安全,而是如何使用它们。XML只是一种数据格式。在这种情况下,听起来数据的分离方式对安全性没有任何显著影响


直接回答:不是。

我知道我说过这是猜测,但这又是怎么回事

首先,您不能使用数据库来存储自己的数据库连接信息,所以位必须在某个地方。Deceze认为XML本身并不安全,这是正确的

任何安全方面都将来自于XML文件在组织中如何与PHP区别对待的其他细节。我能想到的两件事是:

  • 是否允许不同的人编辑XML而不是PHP,包括是否有一个很好的前端用于编辑和保存XML

  • 如果所有网站文件都同步或备份到一个可能被泄露的位置(例如GitHub、USB thumb drive),则需要排除敏感内容,如db password,因此可以很容易地使用文件扩展名.xml来过滤要排除的文件

  • 当然,它们也可以同样容易地应用于.json或.csv文件,甚至可以应用于单独文件夹中的.php文件

    XML的最后一个优势是:

    • 如果有人在不知道自己在做什么的情况下随意处理这个文件,他们可能会相当容易地破坏它,这样就无法解析,整个系统就会失败。结果是:有些人不愿意去处理XML。我不确定这算不算安全,但在一个有着模棱两可动机的同事的世界里,这是有道理的

    我知道我说过这是猜测,但见鬼

    首先,您不能使用数据库来存储自己的数据库连接信息,所以位必须在某个地方。Deceze认为XML本身并不安全,这是正确的

    任何安全方面都将来自于XML文件在组织中如何与PHP区别对待的其他细节。我能想到的两件事是:

  • 是否允许不同的人编辑XML而不是PHP,包括是否有一个很好的前端用于编辑和保存XML

  • 如果所有网站文件都同步或备份到一个可能被泄露的位置(例如GitHub、USB thumb drive),则需要排除敏感内容,如db password,因此可以很容易地使用文件扩展名.xml来过滤要排除的文件

  • 当然,它们也可以同样容易地应用于.json或.csv文件,甚至可以应用于单独文件夹中的.php文件

    XML的最后一个优势是:

    • 如果有人在不知道自己在做什么的情况下随意处理这个文件,他们可能会相当容易地破坏它,这样就无法解析,整个系统就会失败。结果是:有些人不愿意去处理XML。我不确定这算不算安全,但在一个有着模棱两可动机的同事的世界里,这是有道理的

    这个问题可以归结为“为什么我的同事相信一些基本上不真实的东西?”,这需要很多猜测。从逻辑上讲,唯一能够提供无可争议的正确答案的人是你的同事。这是一个很好的观点。我想总有一天我会让他知道的。我在这里要求更多是为了公开一些一般性的考虑。如果这真的是一种逐案实施的方式,显然没有多少人不知道所有细节。这个问题归结为“为什么我的同事相信一些基本上不真实的东西?”需要很多猜测。从逻辑上讲,唯一能够提供无可争议的正确答案的人是你的同事。这是一个很好的观点。我想总有一天我会让他知道的。我在这里要求更多是为了公开一些一般性的考虑。如果这真的是一种逐案实施的事情,显然没有多少人不了解所有细节可以说。