2012-03-10 26 views
6

Tôi muốn có thể đọc thiết bị UUID từ thiết bị iOS trong trang web. Tôi hiểu rằng không thể sử dụng JavaScript cho các vấn đề bảo mật rõ ràng nhưng tôi sử dụng testflight mỗi ngày và tôi có thể thấy rằng họ có quyền truy cập vào các thiết bị uuid.Chứng chỉ iOS được cài đặt bởi trang web cho phép liên kết thiết bị UUID với phiên

Có vẻ như họ làm như vậy bằng cách cài đặt một loại hồ sơ cấp phép trên iPhone của bạn khi bạn đăng ký thiết bị của mình.

Tôi nên sử dụng loại giấy phép/hồ sơ cấp phép nào để làm điều gì đó tương tự?

Sau đó tôi có thể liên kết UUID thiết bị với phiên trang web. Tôi hiểu rằng điều này đòi hỏi sự thừa nhận từ những người dùng hoàn toàn ổn cho tôi.. Tôi không cố gắng tìm một cách xung quanh thực tế là chúng tôi không thể truy cập thiết bị uuid từ mã, tôi hỏi điều này vì tôi biết testflight đang thực hiện việc này

Trả lời

3

Ok! Tôi nghĩ rằng tôi nhận được nó ngay bây giờ.

Bạn nói đúng, UDID là, tất nhiên, không được trình duyệt gửi. Tôi cũng bị thuyết phục bởi nó bị một lỗ hổng bảo mật của Safari, hoặc một cái gì đó như thế, bởi vì testflightapp thêm một ID duy nhất tương tự như UDID, nhưng không.

Điều họ thực sự làm là tạo một DeviceID mới (không liên quan đến UDID). Sau đó, để đăng ký thiết bị, họ tạo một hồ sơ được tạo riêng cho DeviceID này, có chứa một số Enrollment Payload đăng ký thiết bị dựa vào URL chứa DeviceID này được tạo bởi testflightapp.

Trong quy trình đăng ký này, thiết bị được cấu hình yêu cầu, để gửi UDID (cùng với dữ liệu khác). Đây là thông tin hồ sơ yêu cầu:

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

Vì vậy, khi điện thoại hỏi đến máy chủ testflightapp để đăng ký thiết bị này, họ có thể liên hệ mà DeviceID lưu trữ trong hồ sơ cá nhân, với UDID thực tế của thiêt bị hiện tại. Đó là cách chúng hiển thị trong trình duyệt rằng quá trình được hoàn thành và giữ UDID. Tuy nhiên, điều này không hoàn thành câu trả lời, bởi vì tôi đã không giải quyết (chưa) làm thế nào họ thực sự liên quan đến phiên web này với UDID, ngay cả khi các phiên deads, và DeviceID đi mồ côi. Câu trả lời có vẻ là (không được xác nhận, nhưng chắc chắn 99%!) Rằng quá trình ghi danh cho phép xác định một WebClip được chèn vào trong menu Springboard của bạn. WebClip này có trong URL được viết UDID của thiết bị, vì vậy bất cứ khi nào bạn truy cập vào testflightapp thông qua WebClip này, bạn đang làm mới với phiên số UDID của bạn, vì vậy không quan trọng nếu phiên làm việc chết.

Hy vọng bài đăng của tôi sẽ hữu ích ngay bây giờ! Xin lỗi lần nữa vì câu trả lời không được hoàn chỉnh trước đó.

+0

Âm thanh thực sự tốt. Đã không tự kiểm tra điều này bởi vì tôi chưa có trong quá trình triển khai tính năng như vậy. Cảm ơn bạn ! – rpechayr

+0

Tôi đang xem khu vực chính xác này vào lúc này. Tôi tin rằng webclip chỉ định thông tin ký tên khớp với URL (trong trường hợp này là * .testflightapp.com) và bất kỳ khi nào iOS Safari truy cập URL khớp với mẫu đó, thông tin ký cũng được gửi. Và thông tin ký đó liên kết yêu cầu của bạn với UDID/tài khoản của bạn. – occulus

+0

Nếu bạn nhìn vào URL của WebClip cho lối tắt bàn đạp, URL không chứa bất kỳ thông tin người dùng nào. Họ dựa vào cert ký, như đã đề cập trước đó. – occulus

Các vấn đề liên quan