web-dev-qa-db-ja.com

ユーザーのデバイスを識別する方法

新しいデバイスからサインインすると、何らかの形式のMFAを介してユーザーであることをユーザーに確認させるGmailのようなものを実装したいと思います。ただし、新しいデバイスがさまざまなシステムやデバイス(デスクトップ、タブレットなど)で使用されているかどうかを判断するために何を使用すべきかわかりません。

私の最初の考えはパブリックIPアドレスを使用することでしたが、これは頻繁に変更される可能性があるため、あまり役に立ちません。

私の2番目の考えは、プライベートIPを使用することです。ユーザーのプライベートIPを保存することは悪い考えですか?

より良い3番目のオプションはありますか?

編集:明確にするために、新しいデバイスが使用されているかどうかを判断するために使用するデータを知りたいです(新しいデバイスが使用されていると判断したら、ユーザーを認証する方法ではありません)。

3
yitzih

これはさまざまな方法で実装できますが、リストしたものはすべてそれ自体でひどいものです。

プライベートIPが役立つことは決してありません。異なるネットワークの複数のユーザーが同じプライベートIPを持つことができます。パブリックIP自体も同様に悪いです-なりすまされる可能性があります。場合によっては、複数のユーザーが一度に使用することもあります(大規模な組織は、多くのユーザーに対して単一の静的パブリックIPを頻繁に使用します)。

注目すべきは、以下の組み合わせです。

  • パブリックIP(ユーザーの最も一般的なログインエリアがわかるように保存してください)

  • ホスト名

  • 画面の解像度

  • プラットフォーム(モバイルvsデスクトップ)

  • OSバージョン(ユーザーは通常OSXを使用していますが、突然Windowsに移行したように見えますか?)

実際、使用できる情報はたくさんあります。 このサイトは、あなたが使用できるものを示す良い仕事をします。

覚えておいてください-回復するデータの組み合わせを使用してください。アクセスを拒否する唯一の方法として、IPやOSを使用しないでください。

2
thel3l

これを追跡する非常に一般的な方法は、標準のhttp cookieを使用することです。これは、ユーザーが場所から場所へ移動しても持続し、Cookieをクリアしたり、ブラウザーを切り替えたりした場合にのみ失われます(ほとんどのユーザーにとって、そうでなくても)、それを確認するのにかなり良い仕事をしますこのデバイスは信頼されています。