Skip to content

v1.4.0 — Sicurezza endpoint pubblici, prova del consenso, eventi su più giorni

Latest

Choose a tag to compare

@dadebertolino dadebertolino released this 28 Aug 07:10

Aggiornamento consigliato a tutti i siti: chiude un'esposizione di dati personali nelle pagine pubbliche e corregge un bug che impediva il salvataggio corretto di IP e prova del consenso.

⚠️ Dopo l'aggiornamento

Le pagine pubbliche di check-in e partecipanti richiedono ora obbligatoriamente un PIN. Se non ne avevi configurato uno, viene generato automaticamente: leggilo in Event Manager → Impostazioni e comunicalo allo staff prima del prossimo evento. Se avevi già un PIN, resta invariato e non cambia nulla.

Sicurezza

  • Le pagine pubbliche di check-in e partecipanti richiedono ora obbligatoriamente un PIN. Prima era opzionale e vuoto di default: chiunque conoscesse l'indirizzo poteva leggere le anagrafiche complete degli iscritti, approvare o annullare iscrizioni e far partire email dal sito
  • Nuova classe DBEM_Security: confronto del PIN in tempo costante (hash_equals), rate limit di 10 tentativi per IP ogni 15 minuti, verifica nonce su tutte le chiamate AJAX pubbliche (protezione CSRF)
  • Corretto un XSS memorizzato nella pagina pubblica partecipanti: il nome di un iscritto poteva iniettare attributi HTML nella tabella vista dall'organizzatore
  • Le azioni sui partecipanti sono vincolate all'evento selezionato
  • Export CSV: neutralizzate le formule (=, +, -, @) interpretate da Excel

Dati e consenso

  • Corretto l'array di format di wpdb->insert, che aveva 8 specificatori per 13 colonne: l'indirizzo IP veniva salvato come 0 a ogni iscrizione e, con checkbox GDPR attiva, testo, timestamp e URL del consenso venivano azzerati. Su MySQL in strict mode l'iscrizione falliva del tutto mostrando comunque un messaggio di successo
  • Corretto uno statement troncato che rendeva inefficace il controllo di errore sull'inserimento
  • Il path DB Form Builder non registra più un consenso non verificato: nuovo campo "Campo Privacy" nella mappatura del form, la prova viene salvata solo a fronte di una checkbox effettivamente spuntata
  • Nuovo uninstall.php con opzione "Elimina tutti i dati alla disinstallazione" (disattivata di default)

Elenco eventi

  • Gli eventi su più giorni mostrano un intervallo nel riquadro data (21-25 SET) invece del solo giorno di inizio, la riga di dettaglio riporta l'intervallo completo e compare il badge "Più date"
  • Nuova opzione per evento "Non mostrare il giorno nel riquadro della card": il riquadro riporta solo mese e anno

Correzioni

  • Il promemoria evento ora funziona: nuovo campo "Promemoria evento" (N ore prima dell'inizio). L'hook cron esisteva ma non veniva mai pianificato
  • L'azione in blocco "Conferma" non reinvia più l'email a chi era già confermato
  • Corretto il markup del metabox Iscrizioni: un </table> fuori posto lasciava la sezione Privacy/GDPR e "Assegnazione orario" senza layout
  • Capability corretta nel salvataggio evento (edit_post al posto di manage_options)
  • Rimossa la registrazione AJAX dbem_save_event_meta, il cui callback non è mai esistito
  • Aggiunto load_plugin_textdomain e cartella languages/: le stringhe sono ora traducibili
  • Lo shortcode [dbem_event] non applica più the_content in modo annidato

Nota sulla v1.3.1

Il tag v1.3.1 era stato creato su un commit in cui l'header del plugin dichiarava ancora Version: 1.3.0, quindi i siti che l'avevano installata continuavano a vedersi proporre l'aggiornamento. Con la 1.4.0 header e tag coincidono e la segnalazione rientra.