【问题标题】:unix password service for storing plain-text password in php web application?用于在 php Web 应用程序中存储纯文本密码的 unix 密码服务?
【发布时间】:2012-04-11 06:28:30
【问题描述】:

是否有 unix 服务,或者至少我可以拼凑起来,用于存储 PHP Web 应用程序的明文密码?

在撰写此问题时,我发现c# provides a service 用于以加密格式存储密码。

我必须存储纯文本密码,因为应用程序连接到各种 ftp 服务器。并非所有这些服务器都配置为使用公钥。我要防止的两个向量是数据库转储和有人从文件系统上的文件中获取明文密码。

我想知道服务器操作系统本身是否可以通过某种方式为运行应用程序的用户存储加密字符串——apachewww-data 或其他任何人。我知道这样的系统仍然容易受到访问这些帐户或上传恶意 PHP 脚本的人的攻击,但我认为按照我们目前的做法,这些风险是可以接受的。我只是不想将明文密码存储在数据库或文件系统中。

【问题讨论】:

  • 您认为系统将密码存储在哪里?
  • 我不明白这个问题——你说的是哪个密码? Shell 帐户密码哈希存储在 /etc/shadow 中,但我无法使用哈希登录远程服务器:(
  • "我只是希望不要将明文密码存储在数据库或文件系统中。"系统将密码存储在数据库或文件系统中。你一无所获。
  • 我希望在数据库或文件系统中存储一个可逆加密的密码,并且只能通过访问运行 Web 服务的 shell 帐户来解密。我知道这不是万无一失的安全措施。我只是不希望密码从数据库转储或文件系统备份中泄露。
  • 这个问题有帮助吗? stackoverflow.com/questions/6038798/…

标签: php encryption passwords password-protection


【解决方案1】:

根据您的问题,我假设您使用的是 Apache。 Apache 配置文件只能由 root 读取,因此存储在这里的任何信息都应该是非常安全的。如果有人获得 root 访问权限,他们可能无论如何都能够提取密码。

您可以使用 Apaches SetEnv 设置环境变量:

SetEnv mySQL_PASS somePassword

这将可用于 PHP 使用 $_SERVER 超全局。

echo $_SERVER['mySQL_PASS'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-21
    • 2010-10-31
    • 1970-01-01
    • 2012-05-07
    • 2010-09-08
    • 2010-11-09
    • 2012-03-06
    • 1970-01-01
    相关资源
    最近更新 更多