2012-03-27 13 views
1

Javaサーブレットに要求を行う特定のデバイス(カテゴリではない)を一意に識別するためのハードウェア情報を収集する手段ですか?私はこれを検索しましたが、メソッドがあるとは思っていません(いくつかの情報には "ユーザーエージェント"ヘッダーを使用できますが、特定のデバイスセットを識別するだけで十分ではありません)。Javaサーブレットとやりとりするデバイスでハードウェア情報を取得できますか?

+1

探している情報の種類を説明できますか? 本当にあなたは私がかなり確信しているユーザーエージェントによって制限されています。純粋にセキュリティ上の理由であれば、あなたが提供する以上のものを判断することはできないと思います。 –

+0

サーブレットにリクエストを行うデバイスを一意に識別する方法が必要です。たとえば、そのMACアドレスを知りたいとします。 Javaアプレットを使用しても(必要な権限のために)その情報を見つけることができるかどうかはわかりませんが、 –

答えて

3

この情報は、HTTPリクエストでは使用できません。リモートアドレス(クライアントIP)とユーザーエージェント(ブラウザーのふりをする文字列)は、HTTP要求に基づいて抽出できるもっとも近い一意のIDです。それでも、この情報は信頼できません。クライアントは、例えば、匿名プロキシを使用することができます。クライアントは、例えば、ブラウザのユーザエージェント文字列を変更することができる。

基本的にはクライアント側でこの情報を収集し、それをリクエストパラメータとしてサーバー側に送信する必要があります。しかし、あなたはこの情報を収集するための利用可能な方法には限りがあります。例えば、JavaScriptはセキュリティ上の理由からこれを許可していません。最も近いベットは、Java AppletまたはWeb Startアプリケーションです。これにより、クライアントにいくつかのJavaコードをダウンロードさせてローカルで実行させることができます。しかし、これは必ずしも信頼できるものではありません。クライアントは、例えば、アプレット/ウェブスタートコードをハックしたり、アプレットとサーバとの間のHTTPトラフィックを改ざんしたりすることができる。

もう1つの方法は、クライアントが有効なログインによって固有の識別子自体を提供する必要がある登録/承認/認証システムを導入することです。これは単純であるだけでなく、より堅牢です。

関連する問題