Perché i browser consentono a JavaScript di pagine Web esterne di collegarsi a localhost?

0

Sto leggendo link

In questo articolo viene descritta una vulnerabilità (ora rattoppata), in cui un programma desktop ascolta le richieste HTTP da localhost. Quel server si fida essenzialmente del suo input e può essere usato per compromettere il sistema.

Tutto ciò che serve è una pagina Web dannosa con JavaScript che apre un POST HTTP a 127.0.0.1:63342 con alcuni dati.

Quindi, perché i browser consentono a JavaScript delle pagine remote di connettersi a localhost? I server Web locali sono utilizzati per un sacco di cose (server di prova, noteboos di Jupyter ecc.).

EDIT : quando stavo giocando, ho ottenuto questo errore (n L'intestazione 'Access-Control-Allow-Origin' è presente sul richiesto risorsa). Sembra che questo dovrebbe aver prevenuto l'attacco anche nel post del blog?

    
posta Ben 15.08.2016 - 22:27
fonte

2 risposte

4

Bene, localhost è solo un nome host, altri nomi host potrebbero essere usati allo stesso modo per impostare un record A per 127.0.0.1 . Il vero problema potenziale è che i browser possono essere manipolati per caricare il contenuto dalla rete locale, come 127.0.0.1 ( localhost ), 192.168.1.1 (router), ecc.

I browser hanno una funzione per limitare a livello globale tale accesso attraverso gli host, chiamato Same -Origin Policy , tuttavia attacchi CSRF contro sistemi mal progettati sono ancora possibili .

Supponendo che gli sviluppatori di applicazioni siano abbastanza competenti da non accettare ciecamente che i dati inviati siano sicuri, e validarli correttamente, dovrebbero andare bene. Il vero problema è che gli sviluppatori che non riescono a capire una tale sicurezza web di base sono fin troppo comuni. Per questo motivo abbiamo recentemente assistito a un'ondata di attacchi contro i router della gente, dove gli attacchi CSRF possono riconfigurare il router senza alcuna interazione da parte dell'utente, perché presuppongono ciecamente che qualsiasi traffico locale sia sicuro.

Per quanto riguarda il blocco esterno delle richieste di rete locali da pagine non locali nel browser, non sono a conoscenza di eventuali browser che stanno attualmente facendo questo, ma è qualcosa La funzione ABE di NoScript fa per impostazione predefinita. Non ho mai notato alcun vero svantaggio nell'usarlo, quindi non posso davvero speculare sul perché i browser non lo facciano già.

    
risposta data 15.08.2016 - 23:09
fonte
0

E i server collegati a Internet controllano le banche online, i registri medici e i reattori nucleari (OK, sto scherzando con l'ultimo *)

Localhost è solo un altro hostname.

Se sei così preoccupato e hai la possibilità di eseguire server su localhost, dovresti sapere come isolare il traffico.

*) ma chi lo sa ...?

    
risposta data 15.08.2016 - 22:54
fonte

Leggi altre domande sui tag