web-dev-qa-db-ja.com

モバイルデバイスから一意の識別番号を取得することは可能ですか?

現在、モバイルデバイスのWebアプリケーションに取り組んでいますが、デバイスごとにブラウザを介して検出できる一意のID番号があるのではないかと考えていました。

目的は、すでにサイトにアクセスした人を認識するためにこの番号を保存することです。

私はかなり多くのBluetoothを使っていましたが、デバイスを検出するときに保存できるMACアドレスがあり、これをID番号として使用していたので、それは私の質問です、一般的なID番号はブラウザ...?

ありがとう。

26
Pierre

さらに調査を行った結果、答えは次のとおりです。いいえ、ブラウザからモバイルデバイスのID番号を取得することはできません。

私が見つけた解決策は、「一意の」番号を生成することです(私の場合はphpで作業したので、Rand()関数で生成された番号と混合したsession_id()番号を使用しました。 2回発生することはほとんどありません...)、有効期限のないCookieに保存します。

Cookieが無効になっている場合、またはユーザーがCookieをクリアした場合は機能しないため、完璧なソリューションではありませんが、実際には時々使用した後、モバイルデバイスではほとんどの場合Cookieが有効になっており、ユーザーは頻繁にそれらをクリアしないようです...

また、(アプリケーションに応じて)電子メールまたはユーザー名を保存し、それをこの「一意の」番号とデータベースに関連付けると、ユーザー名または電子メールを再度尋ねることで、誰かのIDを回復し、新しいCookieを保存することもできます。 。

これが一部の人々を助けることを願っています!

30
Pierre

Sam Greenhalghは、「Super Cookie」を介してデバイスIDを設定する方法を見つけました。

http://www.radicalresearch.co.uk/lab/hstssupercookies (リンク切れ)

4
chickenchilli

私はこれが古いことを知っています-しかし、私はこれを見つけて、GUID type numbers。を使用してOPの次善の策について私の考えを共有したかったです。

推測不可能な巨大な識別子のセキュリティが必要な場合を除き、サーバーが代わりにシンプルなカウンターを作成する方が理にかなっています。 1。新しいCookieを作成します。

これで、クライアントとサーバーの両方に保存できる非常に短く、100%の一意の識別子ができました。

また、電子メールアドレスを保存することもお勧めです。理論上、電子メールアドレスは一意である必要があります-それだけでなく-クロスブラウザ互換です。つまり、Cookieは1つのブラウザーに存在しますが、新しいブラウザーに移動するときに同じメールアドレスを入力すると、元の接続プロファイルにマッピングできます。

あなたはこれとその真実に言及しますが、危険なデータを入れている人、例えば[email protected]には別のユーザー履歴がロードされる可能性があります。つまり、あなたの場合[email protected]を入力した新規ユーザーは、イントロページを見ることができません。

2
Aaron

私は似たようなことをしていますが、localstorageのidをストックするためのHTMLローカルページのために、最終的にサーバーに更新します:数字)どういうわけか、モバイルは時間どおりになりそうです。

0
leDamien

一部の国では、通信事業者は、消費者がWAPゲートウェイを介して閲覧しているときに、httpヘッダーにidを含めます。消費者識別用のAPIを備えたアグリゲーターがいくつかあります。通常は、消費者がWAPゲートウェイもブラウズしている場合にのみ機能します。

0
fravelgue