Come può questa pagina web accedere all'USB? [chiuso]

2

Un amico ha acquistato una cuffia "intelligente" (funzionante con comandi vocali). Ho dovuto installare un software su Windows per poter configurare questo auricolare.

Dopo aver scaricato il software dalla pagina, questa pagina è stata reindirizzata a una procedura guidata di configurazione (ancora sulla pagina Web!) e mi ha informato che il software non è stato ancora installato; Dovrei fare clic su Continua quando ho installato lo strumento.

Dopo l'installazione e facendo clic su Continua, ho dovuto collegare l'auricolare tramite USB. Non appena l'ho fatto, la pagina Web l'ha riconosciuto e ha offerto varie opzioni di configurazione e ha anche mostrato una barra di avanzamento per l'aggiornamento del firmware.

enter image description here

In che modo questa pagina web può accedere (leggere e scrivere su) sull'hardware USB? Oppure: come può "iniettarsi" questo software nella pagina web?

All'inizio pensavo che avrebbe potuto installare un plugin resp. add-on in Firefox, ma questo non era il caso. Questo sarebbe possibile con Flash (non ho controllato se la pagina usava Flash, so solo che non usava Java)? Con JavaScript questo non dovrebbe essere possibile, giusto? Non ho mai visto un tale metodo di installazione / configurazione (anche se non sto usando Windows, quindi non so se questo potrebbe essere comune). Mi sembra una specie di pesce. Non avrebbe dovuto "manipolare" il browser in qualche modo? È così consigliato resp. può essere implementato in modo sicuro?

    
posta unor 06.08.2013 - 15:51
fonte

3 risposte

4

Come @Tom_Leek ha detto: fare in modo che lo strumento esegua un server Web locale sembra essere il modo usato:

Dò un'occhiata all'URL indicato e trovo sulla prima riga di main.js :

//url for the local server
var BASE_DIR = '/inc/support/myheadset/updater/';
var LOCAL_SERVICE_URL = 'http://127.0.0.1:8011/';

Il programma scaricato esegue un server Web locale per interagire con i browser.

    
risposta data 06.08.2013 - 16:47
fonte
4

Quando installi lo strumento locale, tutto va (e richiede persino i diritti di amministratore locale!). Lo strumento può ispezionare l'hardware USB e ha solo bisogno di un modo per "parlare" con la pagina Web. Un modo relativamente semplice consiste nel far eseguire allo strumento un server Web locale e fare in modo che la pagina faccia riferimento a quel server Web come iframe . Pertanto, l'utente (tu) vedrà la "procedura guidata di configurazione" come avvenuta "nella pagina Web" ma sarebbe davvero solo una cosa di visualizzazione, l'elaborazione effettiva eseguita nello strumento installato localmente.

Esistono altri modi per far interagire il codice locale con una pagina Web, ma un server Web locale è uno dei più semplici ed è facile renderlo compatibile con tutti i normali browser Web.

    
risposta data 06.08.2013 - 16:24
fonte
2

Molto probabilmente il driver espone alcuni servizi sulla macchina che possono essere chiamati tramite AJAX. È quindi solo una questione di Javascript che chiama i servizi. Potrebbe anche essere basato su Flash, ma AJAX sarebbe più semplice. Potrebbe anche registrare il driver come gestore per qualche protocollo aggiuntivo (diverso da HTTP). Ad esempio, TeamSpeak (un client di chat vocale) esegue questa operazione registrando il protocollo ts: // per chiamare se stesso. Quindi potrebbe fare qualcosa come plantronics: // e fare chiamate ad esso e le chiamate verrebbero reindirizzate al gestore registrato per quel protocollo (il driver).

Ovviamente questo è un elenco non esclusivo e esistono altre possibilità, ma ci sono alcuni modi possibili per farlo.

    
risposta data 06.08.2013 - 16:18
fonte

Leggi altre domande sui tag