Quali sono i vantaggi di sicurezza di Google Caja rispetto all'utilizzo dell'API web worker? [chiuso]

2

Attualmente sto esaminando Google Caja per eseguire il codice JS fornito dall'utente nel browser e nel nodo.

Finora, ho capito, che, in un contesto di browser, "codice cajol" non consente di leggere e scherzare con lo stato della finestra eseguendo codice non sicuro attraverso un parser in piena regola che elimina tutti i tipi di vettori di attacco, e quindi eseguendo in sicurezza quel codice in un iframe della stessa origine.

Tuttavia, al momento sto lavorando a una soluzione che utilizza% di% co_de di HTML5 ( guarda qui ) e sembra avere lo stesso effetto. Cosa offre Caja che il lavoratore non possiede, oltre alla possibilità di personalizzare le politiche di sicurezza? Ha delle funzioni di sicurezza aggiuntive?

    
posta Domi 06.04.2014 - 14:14
fonte

1 risposta

1

Se Caja ha un vantaggio in termini di sicurezza dipende da quali sono i tuoi obiettivi.

Queste sono le caratteristiche principali che Caja offre per il sandboxing codice che non tutti i metodi di sandboxing attualmente disponibili nei browser, per quanto ne so:

  • Interazione sincrona: puoi definire API che possono essere richiamate dal codice guest e rispondere immediatamente: assomigliano a oggetti e funzioni ordinari. Con i lavoratori, dal momento che sono esplicitamente collegati, tutte le interazioni devono avvenire tramite postMessage e quindi asincrone.

    Inoltre, se scrivi il tuo codice nello stile di capacità dell'oggetto è possibile posizionare sia la tua applicazione sia il codice fornito dall'utente nella sandbox Caja e farli interagire in modo arbitrario senza dovendo utilizzare qualsiasi intermediazione dei pesi massimi ai confini tra di loro.

  • Perfezionamento: puoi vietare al codice ospite di comunicare con server di terze parti. Ciò significa che è possibile eseguire codice non attendibile sui dati privati senza consentire che questi perdano dati (può solo restituire i risultati del calcolo o visualizzarli all'utente).

Se nessuno di questi è interessante per te, allora vai avanti e usa i lavoratori.

(Ci sono altre cose che puoi fare con Caja per HTML, ad esempio controllare i link esterni, che non ho affrontato qui perché ti sembra interessato a eseguire solo JS "headless".)

    
risposta data 07.04.2014 - 19:14
fonte

Leggi altre domande sui tag