Joomla.it Forum

Non solo Joomla... => Sviluppo => : kolbac 27 Mar 2007, 15:30:24

: Convalida form
: kolbac 27 Mar 2007, 15:30:24
Ciao ragazzi,
volevo sapere, se esistono, quali sono i metodi per effettuare un controllo di validità sui campi di un form.
Ciao e Grazie.
: Re: Convalida form
: surfbit 27 Mar 2007, 15:33:18
Ciao ragazzi,
volevo sapere, se esistono, quali sono i metodi per effettuare un controllo di validità sui campi di un form.
Ciao e Grazie.
Semplicemnte dei filtri che controllano se un campo obbligatorio è  compilato, un campo dove devono essere inseriti numeri sono stati inseriti oppure il classico controllo sul campo emai che controlla la @  ;)
: Re: Convalida form
: kolbac 27 Mar 2007, 15:45:43
Volevo sapere proprio se esistono già, ho devo farli da me...
Ma a quanto ho capito non ci sono vero?
: Re: Convalida form
: surfbit 27 Mar 2007, 15:50:51
Volevo sapere proprio se esistono già, ho devo farli da me...
Ma a quanto ho capito non ci sono vero?
In genere se scarichi un modulo sono già pensate queste cosette!! Se invece vuoi degli esempi concreti, basta cercare su Google  :)
: Re: Convalida form
: napo 27 Mar 2007, 16:00:30
Semplicemnte dei filtri che controllano se un campo obbligatorio è  compilato, un campo dove devono essere inseriti numeri sono stati inseriti oppure il classico controllo sul campo emai che controlla la @  ;)

Semplicemente? :D
: Re: Convalida form
: kolbac 27 Mar 2007, 16:26:16
Cerco di spiegarmi meglio. Il problema non è tanto se il campo è stato riempito o meno, che è banale da verificare, quanto protegere il mio componente da attacchi di qualunque tipo. Non vorrei lasciare la possibilità di inserire del codice pericoloso tramite i campi.
Quindi????
sapete aiutarmi o indicarmi qualche guida?
fondamentalmente i campi sono del tipo nome, cognome, mail, sito web, e cose simili.
Il controllo conviene farlo lato client tramite javascript o lato server???
Leggevo proprio ora, che se javascript non è abilitato il controllo non viene effettuato. E' vero???? Nel caso come faccio a vedere se il browser è abilitato?
Grazie
: Re: Convalida form
: surfbit 27 Mar 2007, 16:46:35
Allora il discorso cambia un pò. Lato server o lato client? Dipende.
: Re: Convalida form
: kolbac 27 Mar 2007, 17:09:22
bhe da quanto sto leggendo in giro converrebbe fare entrambi...
Poi non lo so... datemi voi qualche dritta.
Sto sviluppando un componente per joomla, quindi pensavo di applicare le stesse tecniche che vengono utilizzate, per la convalida dei form, nello sviluppo degli altri componenti.
Da una ricerca un po' approssimativa  sul devbook non ho travato nulla, quindi mi sono rivolto a voi per sapere se esiste già qualche filtro e se sapete darmi indicazioni su come farlo (in altre parole, quili sono i pericoli e come evitarli)
: Re: Convalida form
: napo 27 Mar 2007, 17:11:48
Io eviterei i controlli lato client con JS, perchè basta disattivarlo per aggirare i controlli.
La soluzione definitiva è sicuramente il controllo lato server.
Poi JS può aiutare nell'interazione con l'utente, ma il controllo deve essere fatto lato server.

Per quanto riguarda la sicurezza, dipende dall'utilizzo che devi fare con i dati che ricevi.
: Re: Convalida form
: surfbit 27 Mar 2007, 17:16:19
cmq se hai già guardato gli altri componenti, non è che ci sono molti consigli aggiuntivi. Puoi pensare a tutti gli eventi poi ti bucano per chi sà quale motivo. Un sistema realmente sicuro non esiste.
: Re: Convalida form
: kolbac 27 Mar 2007, 17:25:39
I dati riguardano degli enti. In particolare il nome, l'indirizzo, mail, sito web, ed altri di questo genere che cmq saranno pubblicati.
In sostanza i campi più particolari sono mail, e sito web, ma chiaramente un controllo devo effettuarlo anche sugli altri in modo tale che non buchino il sito con troppa semplicità.
Io avevo pensato di effettuare il controllo lato client e nel caso in cui nel browser fosse disabilitato l'utilizzo degli scrtip effettuarlo lato server.
Chiaramente in tal caso mi occorre controllare se il browser e abilitato o meno sai come si fa?
Grazie
: Re: Convalida form
: napo 27 Mar 2007, 17:35:37
Lascia stare il controllo lato client, perdi solo del tempo.
Anche perchè IE7 funziona in un modo, Firefox in un altro, Opera, IE6, Konqueror, ...
E se siamo sotto MAC? Safari, ...
: Re: Convalida form
: napo 27 Mar 2007, 17:39:31
Per la sicurezza puoi iniziare con l'utilizzo delle funzioni mysql_escape_string() e mysql_real_escape_string().

http://it.php.net/manual/it/function.mysql-escape-string.php
http://it.php.net/manual/it/function.mysql-real-escape-string.php
: Re: Convalida form
: kolbac 27 Mar 2007, 17:47:34
Ok, consiglio accettato.
Però ora dammi qualche indicazione su come farlo lato server,
quanto meno da quali pericoli devo difendermi. Altrimenti oltre a controllare se il campo è obbligatorio o meno non saprei cosa fare.

Per la sicurezza puoi iniziare con l'utilizzo delle funzioni mysql_escape_string() e mysql_real_escape_string().

http://it.php.net/manual/it/function.mysql-escape-string.php
http://it.php.net/manual/it/function.mysql-real-escape-string.php

i metodi quote (pag 20 devbook) e getEscaped (pag 12 devbook) di joomla sono meno affidabili?
: Re: Convalida form
: napo 27 Mar 2007, 17:54:39
Vanno benissimo anche loro, anzi sono fatti apposta.
I pericoli da cui difenderti sono tanti, primi tra tutti SQL Injection e Remote File Inclusion. Qualcosa è accennato nel devbook.

Il consiglio è di effettuare un primo test per stabilire che le precondizioni siano rispettate.
Dopodichè un secondo test per cercare di rendere il codice un pò più a prova di attacco.