2012-12-05 15 views
18

Considerare questa situazione ipotetica:iOS - È possibile comunicare tra app tramite localhost?

Le app di Bob ed Eve sono installate sullo stesso iPhone. L'app di Bob è in esecuzione e si collega a localhost: 8080 per ascoltare le chiamate AJAX dal proprio UIWebView. L'app di Eve viene eseguita in background e tenta di interferire con l'app di Bob effettuando chiamate AJAX a localhost: 8080.

due domande:

  1. Supponendo app di Eva conosce AJAX API di Bob, saranno sue chiamate avere successo? (ad esempio, il traffico sandbox iOS su localhost?)

  2. E 'possibile che l'app di Eve annodi il traffico che genera l'app di Bob?

+0

Questa è ... un'ottima domanda. Scaramamente bene. – RonLugge

+0

Wow .. è interessante. Ho fatto qualche ricerca e non ho potuto trovare una risposta immediata. Se lo scopri, posta la risposta come vorrei sapere. Suppongo che sia sandbox, in quanto sembra un po 'di supervisione se non lo è. – Bergasms

+0

Provalo. Il modo migliore per ottenere una risposta a questo è di mettere insieme due di queste app e vedere cosa succede. – rmaddy

risposta

5
  1. se l'applicazione di Bob è in esecuzione, sì app di Eve in grado di connettersi ad esso.

Ci sono 2 possibili modi per ottenere ciò. O l'app di Bob è in primo piano e l'app di Eve si collega ad essa in background, dato che l'app di Eve è in esecuzione in background. Oppure, l'app di Bob è in esecuzione in background e l'app di Eve si connette in primo piano.

Per impostazione predefinita, iOS sospende le app in background. Se l'app utilizza l'esecuzione in background e continua a funzionare in background, può accedere alla rete come al solito.

Si consiglia di leggere "Beyond The Basics" in technical notes on Networking and Multitasking

  1. Sniffing traffico di Apple richiedono l'accesso root, non si può fare a meno di app di Eva è un applicazione jailbroken.

Nella sezione "BSD (incluso Mac OS X)" dell'articolo Wireshark CapturePrivileges, è stato che su sistemi BSD abbiamo bisogno di avere il permesso di accedere ai dispositivi BPF per catturare i pacchetti (leggi: intercettare il traffico di rete). Solo root (o qualsiasi superutente) possono accedere ai dispositivi BPF o concedere l'autorizzazione a qualsiasi altro utente per accedervi.

+0

Ottima risposta. Questo conferma i miei sospetti. Le app jailbroken sono la mia preoccupazione principale qui, quindi questa è un'informazione molto pertinente. Sembra che se Bob fosse preoccupato di questo, la sua migliore opzione sarebbe quella di proteggere il traffico usando HTTPS o simili. –

+0

Dal momento che questo ha implicazioni sulla sicurezza (un'app dannosa che si collega al server di un'altra app o spoofing in background di un altro server in modo che la vittima si colleghi al server malevolo in background), sai se Apple l'ha mai affrontato? So che, ad esempio, le app Win10 (incluse quelle sui telefoni) dispongono di una rete in modalità sandbox per impostazione predefinita; Apple ha aggiunto qualcosa di simile? – CBHacking

Problemi correlati