Validazione di Sicurezza nell'Editor HTML
Panoramica
Abbiamo aggiunto la validazione di sicurezza all'Editor di Codice HTML all'interno di:
- Form
- Survey
- Quiz
Questo aggiornamento impedisce il salvataggio di JavaScript non sicuro. Protegge gli account da:
- Cross-site scripting (XSS)
- Furto di cookie
- Hijacking di token/sessione
- Tentativi di acquisizione dell'account
Se viene rilevato codice non sicuro, il sistema blocca l'azione di salvataggio e mostra un messaggio di errore.
INDICE DEI CONTENUTI
Come Funziona
Quando modifichi HTML personalizzato:
- Apri il Form / Survey / Quiz Builder
- Aggiungi un elemento HTML
- Clicca su Edit HTML
- Inserisci il tuo codice
L'editor analizza automaticamente il codice in tempo reale.
Se viene rilevato un problema di sicurezza:
- Appare un messaggio di errore rosso sotto l'editor
- Il pulsante Save viene disabilitato
- Devi rimuovere il codice non sicuro prima di poter salvare
Cosa Viene Bloccato
L'editor blocca i pattern JavaScript ad alto rischio che possono esporre dati sensibili.
1. Accesso ai Cookie
Bloccato:
document.cookie
Bloccato anche:
document['cookie']
window['document']['cookie']
I cookie possono contenere dati di autenticazione. Accedervi può portare alla compromissione dell'account.
2. Uso di eval()
Bloccato:
eval("alert('hello')")
eval() esegue stringhe arbitrarie come codice e può essere usato per nascondere script malevoli.
3. Uso di new Function()
Bloccato:
new Function('return document.cookie')
Esegue dinamicamente codice basato su stringhe e presenta gli stessi rischi di eval().
4. Uso di setTimeout() con una Stringa
Bloccato:
setTimeout("alert('hi')", 1000)
Consentito:
setTimeout(function () {
alert('hi')
}, 1000)
Passare una stringa fa sì che il browser la valuti come codice.
5. Uso di setInterval() con una Stringa
Bloccato:
setInterval('checkStatus()', 5000)
Consentito:
setInterval(() => checkStatus(), 5000)
6. Lettura da localStorage
Bloccato:
localStorage.getItem("authToken")
Leggere da localStorage può esporre dati sensibili di sessione o autenticazione.
Consentito:
localStorage.setItem("theme", "dark")
localStorage.removeItem("temp")
localStorage.clear()
Cosa È Consentito
Non vengono bloccati:
- HTML standard
- Logica JavaScript sicura
- Arrow function
- Riferimenti a funzioni nei timer
- Scrittura su
localStorage - Utilizzo di
sessionStorage
Note Importanti
- Il rilevamento non è sensibile alle maiuscole (
eval,EVAL, ecc.). - Se lo stesso problema appare più volte, viene mostrato un solo messaggio di errore.
- I campi HTML vuoti sono consentiti.
- L'HTML puro (senza script) è consentito.
Se il Tuo Codice Viene Bloccato
Per risolvere il problema:
- Rimuovi qualsiasi accesso diretto ai cookie
- Evita
eval()onew Function() - Usa riferimenti a funzioni al posto di timer basati su stringhe
- Non leggere dati di autenticazione o sessione da
localStorage
Questo articolo è stato utile?