如何使用PHP保护存储在XML文件中的密码?

如何使用PHP保护存储在XML文件中的密码?,php,mysql,xml,encryption,social-networking,Php,Mysql,Xml,Encryption,Social Networking,我在一个使用PHP和XML的社交网络上工作,但我不知道如何保护我的XML文件,这些文件包含密码和其他内容。我听说过一些关于杂烩和盐的事,但我对此一无所知。或者,我应该放弃使用xml而只使用MySql吗?我个人不想将密码存储在xml文件中,但是,如果出于任何原因,您不能更好地保护公众用户,我会将密码存储在web根目录之外,这样您就不能直接访问它们。您的脚本至少应该能够访问主目录 我还要确保您的密码是使用某种加密方式存储的,这样,如果有人访问了文件,他们就不能只读取密码。如果您要存储用户访问您网站的

我在一个使用PHP和XML的社交网络上工作,但我不知道如何保护我的XML文件,这些文件包含密码和其他内容。我听说过一些关于杂烩和盐的事,但我对此一无所知。或者,我应该放弃使用xml而只使用MySql吗?

我个人不想将密码存储在xml文件中,但是,如果出于任何原因,您不能更好地保护公众用户,我会将密码存储在web根目录之外,这样您就不能直接访问它们。您的脚本至少应该能够访问主目录


我还要确保您的密码是使用某种加密方式存储的,这样,如果有人访问了文件,他们就不能只读取密码。

如果您要存储用户访问您网站的凭据,然后,您将需要使用攻击性地散列这些密码,以确保它们在出现漏洞时不会轻易被破解


如果您正在谈论存储用于访问第三方服务的密码,您需要能够使用这些密码,那么您需要使用可逆方法(如Blowfish和某种私钥)对其进行加密

在任何情况下都不应将密码存储在XML文件中。这些文件非常容易获取,甚至可能在不经意间通过您的web服务器公开,任何人只要访问特定的URL即可下载

MySQL是一个非常宽容的数据库,所以它是一个很好的选择,如果需要的话,它的扩展性也非常好。我希望在一个新的应用程序中使用
mysqli
或PDO,这里有许多示例说明如何正确地使用SQL


如果你正在构建一个完整的应用程序,你可能想看看使用一个框架,或者给你一个建立的基础。这些功能提供了大量底层应用程序支持,您需要构建类似于您所说的内容的应用程序,从而在开发过程中节省了大量时间。

您是否尝试过用谷歌搜索“hash and salt”?那里有很多书是的!停止使用XML存储密码。@DarkXphenomenon:XML作为存储有什么问题吗?@DarkXphenomenon:视情况而定。你说使用xml来存储数据好像有什么问题passwords@DarkXphenomenonMySQL不是万能的;-)还有其他的DB/存储密码的形式,Unix仍然使用一个工作得很好的文本文件,或者使用PAM调用对有效的Unix用户进行验证——可能是无限的文本密码存储在文件中,任何类型的文件,包括MySQL数据库,都可能是一个非常糟糕的主意。正如你所说,无论它们是如何存储的,你都会希望以某种方式对它们进行加密。请了解加密和散列的区别。你想要的是散列密码,而不是加密密码。我同意,不过最好说“在任何情况下都不应该在XML文件中存储未加密的密码”。不管你把未加密的密码放在哪里,它们都是易受攻击的。从更一般的意义上说,是的。但是,对于web应用程序来说,将任何类型的敏感数据存储在XML文件中是一个非常糟糕的主意。至少对于一个数据库,攻击者必须找到连接到它并提取内容的方法。抓取文件太容易了。好的,谢谢。我决定使用mysqli而不是XML。