PHP:如何隐藏数据库连接/电子邮件连接语句的密码?

PHP:如何隐藏数据库连接/电子邮件连接语句的密码?,php,database,security,passwords,Php,Database,Security,Passwords,我有一个用PHP开发的网站。有两个类(在两个单独的php文件中)包含siteadmin的gmail用户id和密码(纯文本)以及数据库密码(同样是纯文本)。尽管这些类都没有显示在浏览器上(比如index.php)。这些文件只包含php类,没有html代码,对这些纯文本密码的引用仅通过这些类的对象进行。 晚点下班,我开始怀疑这是否足够安全?我已经尽了最大的努力(扮演一个恶意的人)尝试读取上述两个php文件的内容,但未能做到这一点。我不太熟悉开发安全代码,所以不确定应该采取什么方法来确保这些密码永远不

我有一个用PHP开发的网站。有两个类(在两个单独的php文件中)包含siteadmin的gmail用户id和密码(纯文本)以及数据库密码(同样是纯文本)。尽管这些类都没有显示在浏览器上(比如index.php)。这些文件只包含php类,没有html代码,对这些纯文本密码的引用仅通过这些类的对象进行。 晚点下班,我开始怀疑这是否足够安全?我已经尽了最大的努力(扮演一个恶意的人)尝试读取上述两个php文件的内容,但未能做到这一点。我不太熟悉开发安全代码,所以不确定应该采取什么方法来确保这些密码永远不会暴露。 有谁能建议开发能够安全地包含此类敏感信息的php代码的最佳实践吗

  • 将可配置项放在公共web目录上方的单独配置文件中
  • 确保您已为文件设置了正确的文件权限
  • 检查您的web应用程序是否包含本地(和远程)文件
  • 让您的服务器处于最新状态

将密码放在安全位置并不是一个完整的解决方案,您需要确保整个PHP应用程序的安全,并且任何未经授权的人都不能获得root/administrator对服务器的访问权。

首先,如果可能的话,我会考虑使用-这意味着您根本不必存储凭据,并提供一定程度的保护,以防您的服务器受到损害

我也会看看这些问题的答案

最后,如果您的站点位于公共互联网上,那么至少有必要阅读互联网安全的基础知识,尤其是网络应用程序的安全。事情有各种各样的可能出错。我喜欢“黑客曝光”的书

  • 不要将密码存储在文件中,因为最终会有人将该文件签入源代码管理。或者有人会错误地设置权限

  • 使用自己的O/S用户帐户运行应用程序

  • 将密码放入应用程序用户的O/S环境变量中(不是系统环境变量)


  • 您还可以在使用敏感信息后将其
    unset()
    ,以防止它意外地从忘记的
    var\u dump()
    +1泄漏,除非您有RFI/LRI及其PHP文件,否则它将再次执行,而不会打印。另一方面,可以使用mysql文件权限或更通用的目录遍历来读取它。