8

Ovviamente, so che la convalida sul lato server è DEVE.Quindi è sicuro convalidare il modulo solo sul lato client?

Sto utilizzando jQuery per convalidare i moduli di input e utilizzare jquery ajax per eseguire la convalida lato server (PHP) allo stesso tempo. Quindi immagino che potrebbe essere sicuro poiché convalida per entrambi i lati mentre javascript è abilitato.

Bene, qui è il mio problema ...

Ma cosa succede se l'utente ha javascript disabilitato sul suo browser e se alcuni cattivi cercano di fare qualcosa di brutto di modificare il mio script lato client?

Poiché eseguo la convalida sul lato server tramite jquery ajax e sto pianificando di non convalidarli direttamente nello script php (action = "some.php") anche il javascript dell'utente è abilitato.

Quindi ... è ancora sicuro?

Scusa per il mio pessimo inglese, spero non ti dispiaccia.

+1

Possibile duplicato off: http://stackoverflow.com/questions/3483514/why-is-client-side-validation-not-enough/ – RTB

+2

Wow, una cosa che ho pensato dove ovvio. Non c'è da meravigliarsi se le persone vengono violate così spesso. Solo dannazione. – rook

risposta

13

No, non è sicuro. È sempre necessario convalidare i dati sul lato server, dopo il, il modulo è stato inviato. La convalida sul lato client e la convalida AJAX prima dell'invio del modulo migliorano solo l'esperienza dell'utente, fornendo un feedback più rapido sui dati non validi. Sia la convalida lato client che la convalida pre-invio AJAX non proteggono e non possono proteggerti da un invio di moduli pericolosi. Di solito gli aggressori e gli abusatori non usano nemmeno un browser per inviare dati al tuo server.

+0

La tua risposta è utile! Grazie... –

5

mie regole sono abbastanza semplici ...

  1. Se vi preoccupate per i vostri dati, quindi è necessario convalidare sul server.
  2. Se ti interessa la tua esperienza utente, devi convalidare su il client.
+0

La migliore risposta !, breve e preciso. –

6

Poiché javascript è leggibile da qualsiasi visitatore e facilmente modificabile con i browser più recenti, chiunque abbia un po 'di abilità di programmazione può bypassare la convalida di javascript in pochissimo tempo. Quindi dovresti convalidare anche dal lato server, sempre.