Java Web アプレットでハードウェア ID を取得したいと考えています。これは実行可能ですか?そうでない場合、より安全な認証を支援するためにこれを行うことができる Web 言語はありますか?
3 に答える
以下に説明するように、任意の1つのアプローチを使用できます。
署名付きJavaアプレットを使用して、JNI互換の共有ライブラリをロードし、作業を完了します。
public NativeHelloApplet() { AccessController.doPrivileged(new PrivilegedAction() { public Object run() { try { System.load(System.getProperty("user.home") +"/libhello.so"); displayHelloWorld(); }catch(Exception e) { e.printStackTrace(); } return null; } });
}
Webページに埋め込まれたVBスクリプトを使用します。サンプルは次のとおりです。
Win32_SystemEnclosureクラス、およびプロパティSerialNumberとSMBIOSAssetTagを使用します。
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colSMBIOS = objWMIService.ExecQuery _ ("Select * from Win32_SystemEnclosure") For Each objSMBIOS in colSMBIOS Wscript.Echo "Part Number: " & objSMBIOS.PartNumber Wscript.Echo "Serial Number: " _ & objSMBIOS.SerialNumber Wscript.Echo "Asset Tag: " _ & objSMBIOS.SMBIOSAssetTag Next
関心のあるすべてのブラウザ用のプラグインを設計し、それらを使用してデータを収集します。MSは、FireFoxでの認証済みソフトウェアのチェックにこれを使用します。
もっと知りたい場合は、遠慮なくお知らせください。その場合、私はhttp://puspendu.wordpress.com/で私のブログに書きます
特定のシステム プロパティへのアクセスを含め、アプレットでできることとできないことの概要を把握できます。特に、署名されていないアプレットは「ネイティブ ライブラリをロードできません」。これは、あらゆる種類のハードウェア識別に必要となる可能性があります。
そうでない場合、より安全な認証を支援するためにこれを行うことができる Web 言語はありますか?
問題は認証の強度ではありません。むしろ、ユーザーのブラウザーで実行されている Web 言語が、リモート Web サービスがユーザーのハードウェアやファイルなどにアクセスすることを許可する必要があるかどうかです。答えは、強調された「NO IT SHOULD NOT」です。信頼できるプラグインまたは証明書。