Domanda

Sto pensando al design di un'app per iPhone che vorrei creare.Un possibile problema è che questa applicazione dovrà essere eseguita come root (per accedere a determinate porte di rete).In una tipica app UNIX, farei semplicemente funzionare l'app con setuid, ma mi chiedo se ciò sia possibile con un'app per iPhone.

Ho letto questa domanda nel forum di Apple, che è scoraggiante:

http://discussions.apple.com/thread.jspa?threadID=1664575

Capisco che Apple voglia limitare ciò che un programma può fare, ma ci sono molte ragioni valide e legittime per cui un utente esegue un programma con privilegi elevati.Non sto cercando di creare uno strumento di hacker qui.

Sono sicuro che potrei aggirare questo problema su un iPhone jailbroken, ma non è quello che cerco.Esiste un modo per eseguire un'app con privilegi elevati su un iPhone intatto?

(A proposito, non è necessario avvisarmi della NDA.)

È stato utile?

Soluzione

La sezione 3.3.4 dell'accordo SDK per iPhone suggerisce di non lavorare al di fuori della sandbox.

Dato che Apple è stata in qualche modo arbitraria riguardo alle applicazioni consentite, dovresti assolutamente ricontrollare con loro Prima inizi a sviluppare.

Rispetto alla 2.0.x, le restrizioni del sandbox sono effettivamente aumentate nella versione 2.1;non puoi più nemmeno leggere dalla sandbox di un'altra applicazione.Quindi, anche se attualmente È possibile elevare i privilegi della tua app, molto probabilmente non sarà in una versione futura.

Altri suggerimenti

Le uniche opzioni che hai sono

  1. Esegui l'applicazione come root sull'iPhone

  2. Imposta il bit setuid dell'applicazione e la root del proprietario.

Non riesco a vedere nessuno di loro essere benedetto da Apple.

Immagino che dipenda da cosa vuoi fare con i privilegi, se sei fortunato potrebbero essere disponibili privilegi più dettagliati, ma afaik devi scegliere una porta superiore a 1024.

Non importa se puoi farlo sul tuo normale computer desktop.L'iPhone non è un normale computer desktop.

A differenza di un computer desktop, il soltanto Il modo per ottenere un'applicazione sull'iPhone senza jailbreak è scaricarla dall'App Store.IL soltanto Il modo migliore per accedere all'App Store è seguire le regole di Apple e le regole di Apple chiaramente includono "nessuna escalation dei privilegi", "nessuna fuga dalla sandbox" e "nessun accesso alle porte di rete al di fuori delle API fornite esistenti".

Quello che vuoi fare è non possibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top