Rischi potenziali di consentire javascript personalizzati

0

Sto pianificando uno strumento che consentirà agli utenti di pubblicare raccolte dei loro scritti per il consumo di pubblicazione.

Qualsiasi modifica del contenuto o delle impostazioni dell'account verrà eseguita tramite un server di gestione / amministrazione sicuro foo.com .

Quando gli utenti scelgono di pubblicare una raccolta, potranno scegliere un sottodominio da un TLD diverso, riservato specificamente per il contenuto pubblicato: <subdomain>.foo.pub .

Vorrei offrire agli utenti la possibilità di inserire javascript personalizzati nell'HTML pubblicato. Ad esempio, potrebbero modificare il tema o includere commenti di terze parti, ad esempio.

Poiché le raccolte pubblicate sono sul sottodominio di un TLD completamente separato dal server di gestione, penso che gli utenti sarebbero protetti dagli attacchi XSS.

Quali altri rischi, se ce ne sono, spiegherei i lettori consentendo l'esecuzione personalizzata di JS?

    
posta Murphy Randle 19.06.2017 - 18:52
fonte

1 risposta

2

Essere in grado di eseguire codice personalizzato nell'ambiente di qualcun altro è l'endgoal della maggior parte degli exploit web. La tua considerazione progettuale aggira qualsiasi pretesa di sicurezza e facilita questo per impostazione predefinita.

Il servizio che stavate effettivamente offrendo è una piattaforma per chiunque pubblichi malware, adware e download drive-by, o per utilizzare il vostro servizio come nodo in una botnet.

Ci sono modi migliori per fare ciò che vuoi fare piuttosto che consentire l'esecuzione di codice arbitrario.

  • I teat possono essere gestiti attraverso un certo grado di css personalizzato (guarda il sistema subreddit css).
  • I commenti e le API di terze parti possono essere facilitati attraverso l'uso di widget o plug-in approvati che scrivi e autore in base alla richiesta più diffusa.

È solo un cattiva idea , e c'è un motivo per cui solo pochi siti (jsfiddle, ecc.) permettono l'esecuzione di codice arbitrario - sono sandboxed all'inferno e viceversa, e implementano interpreti modificati che non consentono l'esecuzione di potenziali comandi dannosi ( eval() , ecc.)

    
risposta data 19.06.2017 - 20:00
fonte

Leggi altre domande sui tag