salve,
vorrei sapere quali sono le funzioni di validazione di input nella nuova versione di drupal.
Per esempio la corrispettiva della funzione valid_input_data ..
grazie
ciao
salve,
vorrei sapere quali sono le funzioni di validazione di input nella nuova versione di drupal.
Per esempio la corrispettiva della funzione valid_input_data ..
grazie
ciao
La validazione si svolge seguendo questa sequenza:
Componi il form => function form_validate => function form_submit
come spiegato qui:
http://api.drupal.org/api/HEAD/file/developer/topics/forms_api.html
e quì:
http://api.drupal.org/api/HEAD/file/developer/topics/forms_api_reference...
Poi ci sono le funzioni di valutazione dei dati immessi (quelle a cui tu immagino ti riferisca):
http://api.drupal.org/api/4.7/group/validation
http://api.drupal.org/api/4.7/group/format
(anche se in realtà, funzioni reali per i form non son molte)
Comunque prendi sempre a riferimento il sito delle api, in cui trovi la documentazione di tutte le api di drupal (immagino che tu già lo conosca):
http://api.drupal.org/api
Ciao
Gianni
sì avevo dato uno sguardo alle api .. però a me non interessava vedere l'utilizzo, stavo cercando di studiare il codice di drupal e non capivo nella nuova versione come evitasse eventuali injection negli input.
Nella versione precedente per esempio con la funzione valid_input_data, fa un controllo che non contengano parole tipo script, applet..etc..etc.. se ora questa funzione non esiste più, e a prima vista non ho trovato più codice che effettui simil controlli, come vengono evitate le injection? E perchè questo cambio di sistema? Svantaggi del precedente?
grazie
ciao
La funzione a cui ti riferisci, non esiste più da un pezzo (dalla 4.6).
Ti riporto le motivazioni della cancellazione:
"the concept of valid_input_data() was flawed. There is no magical check you can perform that will separate safe from unsafe data. It depends on what happens to the data and how it is output."
Condivido pienamente. Che senso ha verificare la presenza di parole come script, applet ecc... Se il formato di input è un testo tecnico?
Il mio commento ovviamente prescinde dalla conoscenza di quella funzione (di cui non trovo più traccia) e si basa unicamente sulla tua spiegazione sommaria.... in parole povere, potrei anche aver detto una stupidata :-)
Comunque adesso esistono le funzioni check_* che verificano la tipologia della stringa. Esempio check_plain() per il testo semplice.... via tag, script ecc...
Altra cosa che ho notato è una verifica sui dati immessi su select. Tempo fa feci una prova, passando alla select un parametro non "previsto" tra il suo range di valori, inserito lato client da un javascript.... drupal blocca i dati segnalando un messaggio di errore (di cui ora non ricordo il messaggio preciso).
In dettaglio:
http://drupal.org/node/28984
http://drupal.org/node/62304
P.S.
L'argomento è interessante..... se "scopri" altre funzioni del caso, per favore segnala
Ciao
Gianni
concordo con l'inutilità dei controlli che effettuava la valid_input_data, però appunto ero curioso di sapere come si era evoluto drupal sotto questo aspetto, visto che si è potuto capire, sono rimasto un po indietro sul suo sviluppo :P
Più tardi darò un occhio meglio alle funzioni check_* e come lavorano.
grazie
ciao