2017-08-01 4 views
0

ウェブフォームでサードパーティのアカウントのクライアントのパスワードを取得する必要があります。これはユーザーの機密データを安全に取得する方法ですか?

専用サーバーとSSLがインストールされています。

私は、ユーザがフォームをPHP処理スクリプトに提出させることを計画していました。

PHP処理スクリプトは、aes-256-ctrを使用してパスワードを暗号化し、サーバ上の書き込み専用フォルダ(public_htmlフォルダの下)にランダムに生成されたファイル名で保存します。

新しいファイルが追加されると警告が表示され、暗号化されたファイルがローカルマシンに即座に送信され、サーバーから削除されます。

これで、ファイルをローカルで復号化できます。

これはどの程度安全ですか?

+3

**完全に安全**。あなたがそれを完全に安全でないようにするパスワードを解読して読むことができるなら。ほとんどの攻撃は組織内で行われます。だからあなたやあなたの役割を後で担う人はセキュリティリスクです – RiggsFolly

+2

あなた自身のパスワードハッシュを__rollしないでください。 PHPは['password_hash()'](http://php.net/manual/en/function.password-hash.php) と['password_verify()'](http://php.net/manual/ en/function.password-verify.php)それらを使用してください。 ここにいくつかの[パスワードに関する良いアイデア]があります(https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet) 5.5より前のPHPバージョンを使用している場合は、[互換パックがあります](https ://github.com/ircmaxell/password_compat) – RiggsFolly

+2

@RiggsFollyあなたの状態は真ですが、それは次のような質問には当てはまりません:*サードパーティのアカウントのクライアントのパスワードを取得する*。 – zaph

答えて

1

これは、パスワードを安全に保護する方法ではありません。メソッドの秘密を保持することで、セキュリティは得られません。

あなたはここで、実際のパスワードを保存しなければならない場合への一つの方法は、脆弱性を減らすことである。

  • は、暗号化のパスワードをHSMを使用することを検討して、彼らは安くはありません。

  • パスワードは、インターネットに接続されていない別のサーバーに保存してください。

  • パスワードが必要なサーバーに接続するだけです。

  • 単純なAPIを使用してパスワードを設定、要求、および削除します。

  • 2段階管理者認証を使用し、管理者を2人以下の信頼できるユーザーに制限します。

  • 電子メールまたはテキストメッセージではなく、2要素認証にシリアル番号の付いたトークンを使用すると、管理者数を確実に制御できます。

  • レート制限をサーバーで使用し、レートを超えた場合にアラートを送信します。

  • 設計と実装を検証するために暗号化をSMEにする。

  • インターネット接続されたサーバーで2要素管理者認証を使用します。

  • 負債保険を購入してください。

大きなセキュリティ上の問題の1つは、多くのユーザーが他のシステムでパスワードを再利用することです。あなたのシステムは侵害され、ユーザー情報とパスワードが盗まれ、それが起こったことを知らないでしょう。これらのユーザー資格情報は、他のシステムのユーザー情報にアクセスするために使用されます。あなたの責任は潜在的に巨大です。

警告:私はではありません。このトピックに関するSMEです。

関連する問題