2

FTP経由でファイルを編集できるスクリプト(PHP + MySQL)に取り組んでいます。私がやろうとしているのは、ユーザーがログインしてサーバーに接続するときに、ftpパスワードを記憶して、サーバーに透過的に再接続するために再利用できるようにすることです(たとえば、ファイルを閲覧するとき)。セキュリティ上の理由から、生のパスワードをデータベースに保存したくありません。データベースの接続IDを参照して、パスワードをCookieに保存することを考えていました。しかし、これも十分に安全とは言えません。データベースに一時的なパスワード エントリを保存するのはどうですか?

この問題にアプローチする方法はありますか?

4

1 に答える 1

2

非対称鍵システムを試すことができます。

  1. パブリック/プライベート ペアを生成する
  2. ユーザーに秘密鍵を渡す
  3. 公開鍵を使用してパスワードを暗号化し、データベースに保存します
  4. ユーザーがアクションを実行するたびに、ユーザーはあなたが与えた秘密鍵を提供します
  5. 秘密鍵を使用してパスワードを復号化し、アクションを実行してから、メモリ内の秘密鍵を破棄します

サーバーに依存して独自に暗号化/復号化するよりも安全である必要があります。これは 100% 絶対確実というわけではありません (サーバーを root 化した場合、秘密鍵を盗み見られる可能性があります) が、一方的な攻撃を防ぐには良い方法です。少なくとも、秘密鍵が失われているため、侵害された場合でも、古いパスワードは脆弱ではありません。

編集: sarnold が指摘したように、対称鍵システムを使用してこれを行うこともできます。

于 2012-06-12T00:50:36.330 に答える