【问题标题】:How to deal with ftp password in web application in a secure manner如何以安全的方式处理 Web 应用程序中的 ftp 密码
【发布时间】:2012-06-14 21:34:14
【问题描述】:

我正在编写一个脚本 (PHP+MySQL),它可以让您通过 FTP 编辑文件。 我要做的是当用户登录并连接到服务器时,我想记住 ftp 密码,以便可以重复使用它以透明地重新连接到服务器(例如在浏览文件时)。 出于安全原因,我不想将原始密码存储在数据库中。我正在考虑参考数据库中的连接 ID 将密码存储在 cookie 中。但这听起来也不够安全。 将临时密码条目存储在数据库中怎么样?

任何想法如何解决这个问题?

【问题讨论】:

  • 您是否还在使用 FTP?有没有办法使用更好的东西,比如 SFTP?
  • 您是否考虑将其存储在 PHP 会话中?
  • @sarnold 不,我不喜欢 FTP,我只是举个例子。

标签: php mysql security passwords


【解决方案1】:

你可以试试asymmetric key system

  1. 生成公共/私有对
  2. 将私钥提供给用户
  3. 使用公钥加密密码并存入数据库
  4. 每次用户执行操作时,他们都会提供您提供给他们的私钥
  5. 您使用私钥解密密码,执行操作,然后销毁内存中的私钥

应该比仅仅依靠服务器自己加密/解密更安全。这不是 100% 万无一失的(如果他们根您的服务器,他们可以嗅探私钥),但这是防止单向攻击的好方法。至少,如果您被泄露,任何旧密码都不会受到攻击,因为私钥将会丢失。

编辑: 正如 sarnold 所指出的,您也可以使用 symmetric key system 来执行此操作。

【讨论】:

  • 我已经删除了评论。抱歉,我以为您的意思是对所有用户使用相同的对称密钥。我的想法是每个用户都会得到一个不同的私钥。
  • 所以在成功连接到服务器后,用户每次想要更改目录时都必须输入私钥?
  • 您在 cookie 中为用户提供私钥。每次他们连接时,他们的浏览器都会将其传回。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-01
  • 1970-01-01
  • 2011-02-20
  • 2020-10-07
相关资源
最近更新 更多