<input type="hidden">
Gli elementi <input>
di tipo hidden
consentono agli sviluppatori web
di includere dati che non possono
essere visti o modificati dagli utenti quando viene inviato un modulo. Ad esempio, l'ID del
contenuto attualmente ordinato o modificato o un token di sicurezza univoco. Gli input nascosti
sono completamente invisibili nella pagina sottoposta a rendering e non c'è modo di renderli
visibili nel contenuto della pagina.
Gli attributi di questo elemento includono gli attributi globali.
Valore
L' attributo value
dell'elemento <input>
contiene una stringa che
contiene i dati nascosti che desideri
includere quando il modulo viene inviato al server. Questo in particolare non può essere
modificato o visualizzato dall'utente tramite l'interfaccia utente, sebbene sia possibile
modificare il valore tramite gli strumenti di sviluppo del browser.
Avvertimento: sebbene il valore non venga visualizzato all'utente nel contenuto della pagina, è visibile e può essere modificato utilizzando gli strumenti di sviluppo di qualsiasi browser o la funzionalità "Visualizza sorgente". Non fare affidamento sugli hiddeninput come forma di sicurezza.
Attributi aggiuntivi
Oltre agli attributi comuni a tutti gli elementi <input>
,
gli input hidden offrono
i seguenti attributi.
name
Questo è in realtà uno degli attributi comuni, ma ha un significato speciale disponibile per gli
input nascosti. Normalmente, l'attributo name
funziona su input nascosti proprio
come su
qualsiasi altro input. Tuttavia, quando il modulo viene inviato, un input nascosto il cui valore
name
è impostato su _charset_verrà automaticamente riportato con il valore
impostato sulla
codifica dei caratteri utilizzata per inviare il modulo.
Utilizzo degli input hidden
Come accennato in precedenza, gli input nascosti possono essere utilizzati ovunque si desideri includere dati che l'utente non può visualizzare o modificare insieme al modulo quando viene inviato al server. Diamo un'occhiata ad alcuni esempi che ne illustrano l'uso.
Monitoraggio dei contenuti modificati
Uno degli usi più comuni degli input nascosti è tenere traccia di quale record del database deve essere aggiornato quando viene inviato un modulo di modifica. Un tipico flusso di lavoro è simile al seguente:
- L'utente decide di modificare alcuni contenuti su cui ha il controllo, come un post del blog o una voce di prodotto. Iniziano premendo il pulsante di modifica.
- Il contenuto da modificare viene prelevato dal database e caricato in un modulo HTML per consentire all'utente di apportare modifiche.
- Dopo la modifica, l'utente invia il modulo e i dati aggiornati vengono rispediti al server per essere aggiornati nel database.
L'idea qui è che durante il passaggio 2, l'ID del record da aggiornare viene mantenuto in un input nascosto. Quando il modulo viene inviato al passaggio 3, l'ID viene automaticamente rispedito al server con il contenuto del record. L'ID consente al componente lato server del sito di sapere esattamente quale record deve essere aggiornato con i dati inviati.
Miglioramento della sicurezza del sito web
Gli input nascosti vengono utilizzati anche per archiviare e inviare token di sicurezza o segreti , allo scopo di migliorare la sicurezza del sito Web. L'idea di base è che se un utente sta compilando un modulo sensibile, come un modulo sul proprio sito Web bancario per trasferire denaro su un altro conto, il segreto che gli verrebbe fornito dimostrerebbe che è chi dice di essere e che stanno utilizzando il modulo corretto per inviare la richiesta di trasferimento.
Ciò impedirebbe a un utente malintenzionato di creare un modulo falso, fingere di essere una banca e inviare il modulo tramite e-mail a utenti ignari per indurli a trasferire denaro nel posto sbagliato. Questo tipo di attacco è chiamato Cross Site Request Forgery (CSRF) ; praticamente qualsiasi framework lato server affidabile utilizza segreti nascosti per prevenire tali attacchi.
Nota: posizionare il segreto in un input nascosto non lo rende intrinsecamente sicuro. La composizione e la codifica della chiave lo farebbero. Il valore dell'input nascosto è che mantiene il segreto associato ai dati e lo include automaticamente quando il modulo viene inviato al server. Devi usare segreti ben progettati per proteggere effettivamente il tuo sito web.
Convalida
Gli input nascosti non partecipano alla convalida dei vincoli; non hanno alcun valore reale da vincolare.
Liste utili
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/hidden