CONTENT
こんにちは!スタイラジーJAVAエンジニアのHです。
先日業務の中で下記のような要件が上がりました。
・運用しているWEBアプリにアクセスした端末情報を保存したい
・PC名やPCのログイン名が取れればベスト
・上記が無理な場合はMACアドレスでも可
イントラ内で運用しているローカルなWEBアプリのため、「誰が」「どの端末から」という情報を後々確認するために保存しておきたいというご要望でした。
今まであまりそういった要件が無く自身でも興味があったため色々と調べてみましたが結論から言うと「実現不可」となりました。
一応実現できる方法として google先生が教えてくれたのは、「IEのActiveXオブジェクトから取得する」でした。
ActiveXオブジェクト(コントロール)とは・・・
Windowsの実行コードを部品化したものであるため、Webページ中のスクリプトなどに比べ高速に実行できWindowsの機能の一部を呼び出して使用することができる。ブラウザが実行されているコンピュータに接続された装置や保存されたファイルにアクセスすることもできる。
これを使用すると、例えばMACアドレスを確認する機能を呼び出し、その内容をブラウザからサーバに返すことも可能となります。
ですがこの機能、EdgeやChromeでは機能しません。(Chromeはアドオンを入れることで動かすことも可能ですが標準では不可)アプリ製作者が意図的にクライアント側の端末を操作できることがセキュリティ面で宜しくないことが理由の1つだそうです。
確かにある意味、クライアント側の端末情報が収集できたり、場合によってはクライアントのPCを操作できたりしてしまうので、悪意を持って使用すると色々とできそうですね。
今回担当した案件では、代替案を提示のうえ、そちらの方向で進めることとなりましたが、現場レベルで上がってくる要件としては案外こういった要件は良くあるのではと思ったので記事としてあげてみました。結果は「無理でした」ですが・・・(苦笑)
年々ブラウザのセキュリティ要件も厳しくなってきているので、これからも「使えなくなる機能」が増えてきそうですね。エンジニアとしては随時情報をキャッチアップしなければなりません・・・!
年を重ねると新しい技術についていくのが厳しくなってきますが、置いて行かれないよう日々勉強、頑張ります!それでは!