2012-03-10 5 views
6

ウェブページのiOSデバイスからデバイスのUUIDを読み取ることができます。明白なセキュリティ問題ではJavaScriptを使用することは不可能だと私は理解していますが、私は毎日testflightを使用し、彼らはuuidデバイスにアクセスできることがわかります。iOS証明書がウェブサイトにインストールされ、デバイスとUUIDをセッションに接続できるようにしました。

あなたのデバイスを登録したときに、あなたのiPhoneに一種のプロビジョニングプロファイルをインストールすると、そうそうです。

同様のことを行うためにどのような証明書/プロビジョニングプロファイルを使用する必要がありますか?

これで、デバイスのUUIDをWebページセッションにリンクすることができます。 私は、これは私にとって完全に問題ないユーザーからの承認を必要とすることを理解します。コードからデバイスuuidにアクセスできないという事実を回避しようとしているわけではありませんが、私はtestflightがこれをやっていることを知っているので、これを尋ねています

答えて

3

Ok!私は今それを得ると思います。

あなたが正しいですが、もちろんUDIDはブラウザから送信されません。 testflightappはUDIDに似た一意のIDを追加するので、Safariのセキュリティー欠陥、またはそれに類するものがあると私は確信していましたが、

実際に行うことは、新しいDeviceID(UDIDに関係しない)を生成することです。次に、デバイスを登録するために、このDeviceIDに特別に作成されたプロファイルを生成します。このプロファイルには、testflightappによって生成されたDeviceIDを含むURLに対してデバイスを登録するEnrollment Payloadが含まれています。

この登録プロセスでは、プロファイルによってデバイスにUDID(およびその他のデータ)を送信するように要求されます。デバイスは、このデバイスを登録するtestflightappサーバに要求したとき、彼らは実際のUDIDと、プロファイルに格納されているデバイスIDを関連付けることができるしているので

<array> 
    <string>UDID</string> 
    <string>IMEI</string> 
    <string>ICCID</string> 
    <string>VERSION</string> 
    <string>PRODUCT</string> 
    <string>MODEL</string> 
    <string>DEVICE_NAME</string> 
</array> 

:これは、プロファイルはを要求する情報であります現在のデバイス。それで、プロセスが完了してUDIDを保持していることがブラウザに表示されます。

しかし、セッションデッドとDeviceIDが孤立している場合でも、実際にこのWebセッションとUDIDをどのように関連付けるのかはまだ解決していないため、これで答えは完了しません。答えは(確認されていませんが、99%は確信しています)、エンロールメントプロセスでSpringboardメニューに挿入するWebClipを定義することができます。このWebClipにはURLにデバイスのUDIDが書かれているので、このWebClipを通じてtestflightappに入ると、セッションにあなたのUDID番号が反映されるため、セッションが終了しても関係ありません。

希望は私の投稿が今役立つ!不完全な誤った前のものについてもう一度申し訳ありません。

+0

本当に良い音です。このような機能を実装する過程にないので、まだ自分自身でチェックしていません。ありがとうございました ! – rpechayr

+0

私はこの時点でこの正確な領域を見ています。 webclipがURL(この場合は* .testflightapp.com)に一致する署名情報を指定し、iOS Safariがそのパターンに一致するURLをヒットすると、署名情報も送信されると思います。そしてその署名情報はあなたの要求をあなたのUDID /あなたのアカウントに結びつけます。 – occulus

+0

スプリングボードショートカットのWebClipのURLを見ると、URLにはユーザー情報が含まれていません。彼らは前に述べたように、署名証明書に頼っています。 – occulus