Perché i nomi delle classi dovrebbero essere inseriti nella whitelist?

3

Sto utilizzando la accetta la nota strategia di convalida per sanare l'input dell'utente (rich HTML) e sono utilizzando un componente di terze parti per farlo.

Per impostazione predefinita, il componente richiede che ogni nome di classe consentito sia elencato esplicitamente, ma che disponga anche di una casella di controllo per sospendere questa regola (ad esempio, ogni nome di classe sarà accettato). Il testo della guida per questa casella di controllo dice:

Bypassing this rule may lead to security vulnerabilities. Only grant this filter to trusted roles.

Capisco controllando quella casella, vorrei consentire l'input dell'utente come:

<div class="exploit">…</div>

Tuttavia, non riesco a pensare a cosa sostituire "exploit" con quella che potrebbe essere una vulnerabilità di sicurezza.

Qualcuno può spiegarmi perché devo annotare i nomi di classe .

    
posta Free Radical 12.10.2017 - 06:57
fonte

1 risposta

4

Il problema si verifica quando l'HTML specificato dall'utente viene incluso insieme alla tua logica HTML e dell'applicazione nella stessa pagina. È normale che la logica dell'applicazione dipenda dal contenuto o dalla posizione di specifici elementi all'interno dell'HTML che sono selezionati in base all'ID o al nome della classe. Se si consente all'utente di specificare qualsiasi nome di classe, un utente malintenzionato potrebbe essere in grado di generare contenuto con gli stessi nomi di classe utilizzati nella logica dell'applicazione. Ciò potrebbe confondere gravemente la logica dell'applicazione che potrebbe portare a problemi di sicurezza.

    
risposta data 12.10.2017 - 07:31
fonte

Leggi altre domande sui tag