2012-03-10 12 views
6

Bir web sayfasındaki bir iOS aygıtından UUID aygıtını okuyabilmek istiyorum. Anlaşılan güvenlik sorunları için JavaScript kullanmanın mümkün olmadığını biliyorum, ancak her gün testflight kullanıyorum ve kullanıcıların uuid cihazlarına erişebildiklerini görebiliyorum.Web sitesi tarafından kurulan iOS sertifikası oturuma UUID aygıtının bağlanmasına izin veriyor

Cihazınızı kaydettiğinizde, iPhone'unuza bir çeşit temel hazırlık profili yükleyerek bunu yapıyor gibi görünüyor.

Benzer bir şey yapmak için hangi tür sertifika/ön hazırlık profili kullanmalıyım?

Daha sonra bir web sayfası oturumuna UUID aygıtı bağlayabiliyordum. Bunun benim için tamamen iyi olan kullanıcılardan onaylanmasını gerektirdiğini anlıyorum.. kodundan aygıt uuid'e erişememenin bir yolunu bulmaya çalışmıyorum, bunu soruyorum çünkü testflightın bunu yaptığını biliyorum çünkü bu

cevap

3

Tamam! Sanırım şimdi anladım.

Haklısınız, UDID, elbette tarayıcı tarafından gönderilmiyor. Ben de ikna oldum, Safari'nin bir güvenlik kusuru ya da bunun gibi bir şeyden etkilenmişti, çünkü testflightapp UDID'ye benzer, fakat hayır gibi benzersiz bir kimlik ekliyor.

Gerçekte yaptıkları, yeni bir DeviceID (UDID ile ilgili değil) oluşturur. Ardından, cihazı kaydetmek için, aygıtı DeviceFile özel olarak yapılmış bir profil oluştururlar; bu aygıt, cihazı testflightapp tarafından oluşturulan bu DeviceID'yi içeren bir URL'ye karşı kaydeden bir Enrollment Payload içerir.

Bu kayıt işleminde, UDID (artı diğer veriler) göndermek için cihaz profil tarafından istenir. Cihaz bu cihazı kaydetmek için testflightapp sunucuya sorduğunda, onlar gerçek UDID ile profilinde saklanan o DeviceID ilişki edebiliyoruz Yani

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

: Bu profil sorar bilgi olduğunu Şuanki cihaz. Bu, tarayıcıda işlemin tamamlandığını ve UDID'nin devam ettiğini gösterir.

Ancak, bu yanıtı tamamlamıyor, çünkü (henüz) bu oturumun UDID ile gerçekte nasıl bir ilişki kurduğunu çözemedim, hatta oturum açıldığında ve DeviceID artık yokken. Cevap, kayıt işleminin, Springboard menüsünüze eklenecek bir WebClip'i tanımlamasına izin verdiği (onaylanmadığı halde% 99 emin!) Gibi görünüyor. Bu WebClip, cihazın UDID'sini yazdıran URL'ye sahiptir, bu nedenle bu WebClip'i kullanarak testflightapp'a her girdiğinizde, UDID numaranızı seansa yeniliyorsunuz, bu yüzden oturumun ölmesi önemli değil.

Mesajımın şimdi yardımcı olacağını umuyorum! Tamamlanmamış-yanlış oluşturulmuş öncekiler için tekrar özür dilerim.

+0

Gerçekten çok iyi geliyor. Bunu kendim kontrol etmedim çünkü henüz böyle bir özelliği uygulama aşamasında değilim. Teşekkür ederim ! – rpechayr

+0

Şu an bu alana bakıyorum. Webclip'in bir URL ile eşleşen imzalama bilgilerini (bu durumda * .testflightapp.com) belirttiğine ve iOS Safari'nin o desene uyan bir URL'ye her geldiğinde, imza bilgisinin de gönderildiğini düşünüyorum. Ve bu imza bilgisi, isteğinizi UDID'nize/hesabınıza bağlar. – occulus

+0

WebClip'in sıçrama tahtası kısayolu URL'sine bakarsanız, URL hiçbir kullanıcı bilgisi içermez. Daha önce de belirtildiği gibi imza sertifikasına güvenirler. – occulus