2.4. Lavorare con i contenuti. Formati di testo.
I siti Drupal sono generalmente progettati per essere pubblicati su Internet. Una volta online, il sito diventa accessibile a tutto il mondo — inclusi spammer e bot che cercano di inserire codice o spam nei moduli di input. Drupal include controlli e filtri di testo per rilevare e neutralizzare il codice dannoso proveniente dai moduli di inserimento dati (puoi approfondire leggendo di più sugli attacchi XSS).
Andiamo in Configurazione → Creazione contenuti → Formati di testo e editor:
/admin/config/content/formats
Qui troviamo i formati di testo predefiniti: Full HTML, Basic HTML, Restricted HTML e Plain Text. Essi vengono eseguiti dall’alto verso il basso: se l’utente ha il ruolo associato a un formato, questo viene applicato; altrimenti si passa al filtro sottostante. Più in basso si trova il filtro, più severi sono i controlli e minore è la libertà nel testo. Mettiamo Full HTML in cima: è il filtro più permissivo e con meno controlli, quindi lasciamolo predefinito per gli amministratori.
Ora entriamo nelle impostazioni di Basic HTML e assegniamo questo formato anche agli utenti anonimi, permettendo loro di utilizzare CKEditor (l’editor visuale).
Tieni presente che CKEditor è disabilitato di default, e per una buona ragione: gli editor visuali obsoleti rappresentano una vulnerabilità per il tuo sito. Tuttavia, CKEditor è integrato in Drupal e viene aggiornato insieme al core, quindi non devi preoccuparti di falle di sicurezza.
Proseguendo nelle impostazioni, possiamo creare gruppi di icone e trascinarvi i pulsanti che ci interessano. Ad esempio, possiamo creare un gruppo Alignment e inserire le icone per l’allineamento del testo.
Possiamo anche configurare il caricamento dei file tramite CKEditor, ma di solito le impostazioni predefinite sono già adeguate:
Successivamente, possiamo impostare i filtri per ogni formato di testo. Presta particolare attenzione al filtro Limitare i tag HTML consentiti (Skip only allowed HTML tags): è il filtro principale del formato Basic HTML. Questo filtro rimuove il codice JavaScript potenzialmente pericoloso dai campi di testo, lasciando solo i tag HTML autorizzati. Gli altri filtri possono essere attivati o disattivati a seconda delle esigenze.
I filtri attivi possono essere ordinati. È importante che il filtro principale “Limitare i tag HTML consentiti e correggere l’HTML errato” sia in cima alla lista, in modo che elimini qualsiasi codice JavaScript prima che vengano eseguiti gli altri filtri.
Infine, possiamo specificare quali tag HTML mantenere dopo il filtraggio. L’elenco predefinito è già piuttosto ampio, quindi possiamo lasciarlo invariato. Tuttavia, consiglio di aggiungere l’attributo rel="nofollow" per evitare che eventuali link spam nei commenti influenzino negativamente la SEO del sito.