2011-02-03 8 views
8

データベースやその他のサービスパスワードをコードから取り出す方法はありますか?私は、サーバーごとのプロパティファイルを使用する方法について読んだことがありますが、多数のサーバーがある場合は、維持するのが難しくなります。また、CIのビルドプロセスを使用してパスワードを「注入する」ソリューションを見たこともありますが、そのため、オンザフライでパスワードを更新することは困難です。データベースのパスワードはどこに保存しますか?

回答の分野を絞り込むのに役立ついくつかの要件が...

  1. パスワードを変更し、セキュリティ侵害が発生した場合に伝播しやすいはずです。
  2. パスワードが
  3. (によるポイント1)コードで表示することはできませんパスワード
  4. のプレーンテキストバージョンを取得するために人間は、Webアプリケーションやスタンドによく働くべきことは、「非自明」でなければなりませんいくつかの素晴らしいツー持てる者、アプリケーション開発者の観点

から採用するだけでアプリケーション

  • 簡単、迅速な開発時間を単一障害点を紹介し、理解するのは容易ではない含まれています。

    これは、精神的にはthis questionと似ていますが、メンテナンス性を重視しており、サーバー側のケースにもっと重点を置いています。

  • +0

    データベースに保存するのはどうですか? :) –

    +0

    @ジョー:それは実際に目的の解決策でしたが、パスワードを守るというアイデアはその話を終わらせました。 –

    +0

    少なくとも1つのパスワードを覚えておく必要があります。それをCDに焼いて安全な場所に保管することができます。安全な組み合わせを覚えておく必要があります。 :) – GolezTrol

    答えて

    6

    保護されたディレクトリのファイルにプレーンテキストで保存できます。このディレクトリは、アプリケーションが実行されているアカウントでのみ読み取ることができます。 Webアプリケーションの場合は、常にWebルートフォルダの外にパスワードを保存する必要があります。

    +0

    さて、私はあなたの答えをupvoteしようとしていますが、システムは私がすでに投票したことを伝えています(バグ?)。入力いただきありがとうございます。 –

    +0

    あなたは誤ってあまりにも落ち込んでいるかもしれませんか?しかし、今はうまくいくはずです。 – GolezTrol

    1

    データベース接続プールを使用する場合、ユーザー名、パスワード、およびその他のデータベースの詳細は、通常、Java Webコンテナで管理され、Javaコードにデータソースとして提供されます。これらの詳細を知らなくてもデータベース接続を求めるだけです。

    +0

    私たちはコンテナ接続プールを使用します。なぜなら、私たちはそこに他のサービスパスワードも持っているからです。 Javaスタンドアロンのケースでは、私たちのためにデータプールを扱う素晴らしいコンテナはありません。 –

    +0

    私は接続プールがWeb /アプリケーションサーバーに限定されているとは思わない - 私は彼らもスタンドアロンコードでも同様に動作すると信じています。 – trojanfoe

    +0

    正しいですが、アプリケーションサーバーの外にある構成は、通常、アプリケーション内にあります(間違っていると私を証明してください)。また、 "その他のサービス"(FTPと思う)の未解決の問題があります。 –

    0

    Webルート以外のテキストファイルに格納するだけでなく、暗号化を使用する方法もありますか?ほとんどの言語では、暗号化方法を使用するのは非常に簡単ですが、Web攻撃から保護することは厳密には必要ではないかもしれませんが、システム上のファイルにアクセスする可能性のある他の人にとっては難しくなります。さらに、見落とされる可能性のある退屈な名前を付けてファイルを偽装する難読化のビットは、サーバーに物理的にアクセスできる場合でも誰かがそれを見つける可能性が低くなります。

    関連する問題