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:

  1. Apri il Form / Survey / Quiz Builder
  2. Aggiungi un elemento HTML
  3. Clicca su Edit HTML
  4. 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.

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() o new Function()
  • Usa riferimenti a funzioni al posto di timer basati su stringhe
  • Non leggere dati di autenticazione o sessione da localStorage