Domanda

Leggendo attraverso questa domanda su Javascript multi-thread, mi chiedevo se ci sarebbero state implicazioni sulla sicurezza nel consentire a Javascript di generare più thread.Ad esempio, ci sarebbe il rischio che uno script dannoso generi ripetutamente thread dopo thread nel tentativo di sopraffare il sistema operativo o l'interprete e innescare l'ingresso in "terreno di comportamento indefinito", o è praticamente un non-problema?Eventuali altri modi in cui un attacco potrebbe sfruttare un'ipotetica implementazione di JavaScript che supporta thread a cui un'implementazione non threading sarebbe immune?

Aggiornamento: Tieni presente che bloccare un browser non equivale a creare un exploit dal comportamento indefinito.

È stato utile?

Soluzione

No, più thread non aggiungerebbero ulteriori problemi di sicurezza in un'implementazione perfetta.Il javascript threaded aggiungerebbe complessità all'interprete javascript, rendendolo più probabile che abbia un bug sfruttabile.Ma i thread da soli non aggiungeranno alcun problema di sicurezza.

I thread non sono presenti in Javascript perché "I thread fanno schifo" - leggi di più dal progettista del linguaggio (http://weblogs.mozillazine.org/roadmap/archives/2007/02/threads_suck.html)

Altri suggerimenti

Bene, puoi già bloccare un browser e sul serio rallentare un sistema con JS che si comporta male.I browser più illuminati hanno implementato controlli per questo genere di cose e lo fermeranno prima che sfugga di mano.

Tenderei a presumere che i thread verrebbero trattati in modo simile.


Forse potresti spiegare cosa intendi per "comportamento indefinito" allora?Un interprete che ha consentito l'esecuzione di script non attendibili direttamente controllare il numero di thread nativi del sistema operativo in esecuzione sarebbe incredibilmente ingenuo: non so come Gears gestisca le cose, ma poiché l'API è incentrata su Workerè dentro WorkerPoolsì, sarei molto sorpreso se non limitassero il numero totale di thread nativi in ​​uso a un numero molto basso.

Beh, penso che l'unico esempio importante di javascript multi-thread sia Chrome di Google (LO RILASCERANNO GIÀ JEEZ) e se ho capito bene, javascript eseguirà solo un processo per scheda, quindi a meno che non abbia iniziato a generare schede (popup) suppongo questo sarebbe un problema nullo, ma penso che Google lo abbia comunque nascosto, stanno eseguendo tutto il javascript in una sandbox.

Ancora una volta, dobbiamo fare una distinzione tra 1) supporto multithread nel linguaggio (che non credo sia seriamente discusso come qualcosa che accadrà) e 2) utilizzo di thread multipli nel motore/interprete JavaScript nel browser.

Per il punto 2, non riesco a vedere come ciò possa davvero aggiungere possibili problemi di sicurezza al motore/interprete, a meno che non vi siano difetti nell'implementazione.

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