2010-12-27 22 views
0

ログインが必要なアプリケーションがありますが、アプリケーションを使用するユーザーの数は40を超えません。アプリケーションでは、私が使用するSQLサーバーデータベースからデータを取得しますまた、私はデータベースのテーブルを作成することはできませんユーザーの検証を許可しています。dbなしでユーザー情報を保存する方法

また、別のマシンの別のデータベースにユーザテーブルを作成することをお勧めしません(たとえば、別のマシンにmysqlテーブルを作成することもできますが、 )?

これで、ユーザー情報を.propertiesファイルに保存するだけです。

私のアプリケーションで使用されるプログラム言語はjavaです。

答えて

2

データをXML形式でファイルに保存することをお勧めします。暗号化された/ハッシュされたパスワードも保存されます。新規ユーザーが作成するたびに、このようなブロックを追加するたびに

<users> 
... 
... 
<user> 
    <username>first_user</username> 
    <password>some_obfuscated_password</password> 
    <permission>1,3,4</permission> 
    <otherDetails>some detail </otherDetails> 
</user> 
</users> 

ほとんどすべての言語でXMLを解析する標準ライブラリがあります。問題ではありません。そして、誰もファイルを見て、彼はパスワードを取得することはできません。塩も使えます。

+0

良いアイデア、私はXMLファイルに保存しようとします。 – hguser

+0

パスワードを難読化するだけでなく、誰かがユーザーファイルにアクセスすると、ほとんどの場合、攻撃者は難読化を元に戻し、ユーザーパスワードをプレーンテキストで読むことができます。各ユーザー(HMAC-SHA1など)ごとに異なる必要がある塩と一緒に、不可逆操作をよりよく使用します。 – Robert

+0

@Robert - 完全に同意します。 – Nishant

2

データをファイルに保存します。プログラムの複数のインスタンスが使用されている場合は、読み取り前にオペレーティングシステムのロックとロック解除を使用します。それが単なるアプリケーションの場合は、ミューテックスの設定(同期メソッド)で取得することができます。

+0

はい、同時の問題は私が気にしたことだけです.. – hguser

関連する問題