Comunicazione tra browser e applicazione nativa in modo sicuro

10

Sto lavorando su un'applicazione web che ha bisogno di dati che può ottenere solo dal browser delle applicazioni native installato localmente.

Come si può aggirare la sandbox del browser in modo da poter comunicare (in modo sicuro, poiché i dati sono potenzialmente sensibili), con un'applicazione nativa.

Nell'unico esempio che ho trovato, l'utente sposta manualmente alcuni token e file tra i due, che è un'esperienza utente orribile che vorrei evitare.

    
posta Zak Kus 03.02.2015 - 23:02
fonte

2 risposte

6

Potresti incorporare un server web nell'applicazione nativa, quindi il tuo client può effettuare chiamate tramite link hardcoded al link (potresti avere preoccuparsi degli avvisi di cross-site scripting qui e / o eseguire il server su una porta non http). Se si utilizzano websocket, l'applicazione nativa può persino inviare dati al browser Web una volta che il browser ha avviato la comunicazione.

Lo faccio da solo a livello locale, un controllo del browser incorporato richiede i dati di visualizzazione da un server web personalizzato e durante lo sviluppo eseguo entrambi sullo stesso PC.

Ci sono molti piccoli ed efficienti server Web incorporati per C / C ++ (Mongoose, NxWeb, civetweb ecc.), C # tende ad andare per un server WCF completo, python ha un piccolo server web in esso IIRC.

    
risposta data 16.02.2015 - 15:22
fonte
8

Ci sono un paio di modi in cui puoi mescolare un'app nativa e un'app browser.

Puoi incorporare il browser all'interno dell'app nativa, proprio come fanno le app PhoneGap sui dispositivi mobili. Ciò ti consentirà di estendere il motore javascript del browser e di effettuare chiamate tra i due.

In alternativa, ripensa la tua architettura. Sia l'applicazione nativa che l'applicazione basata su browser utilizzano il server come intermediario. Quindi sia il browser che l'applicazione nativa parlano solo con il server web, che inoltra le informazioni tra i due come necessario.

O se hai bisogno di funzionalità native ... basta creare un'unica applicazione nativa.

Non raccomando l'approccio del "web server locale" per qualcosa di diverso dalle applicazioni eseguite in ambienti controllati. Se il tuo software è progettato per l'installazione e l'esecuzione sui computer degli utenti finali con requisiti minimi di supporto, ti troverai a gestire un'intera serie di problemi relativi a firewall e software antivirus.

    
risposta data 03.02.2015 - 23:53
fonte

Leggi altre domande sui tag