Domanda

Qual è la pratica comune di validazione dell'input? In altre parole si fa a controllare per la convalida di ingresso sul lato client, sul lato server o su entrambi i lati?

Inoltre, se le prestazioni è fondamentale per me, sarebbe solo la convalida di ingresso sul lato client sia sufficiente per il mio sito web senza presentare rischi per la sicurezza?

È stato utile?

Soluzione

Eseguire sempre almeno la validazione lato server. Se si vuole migliorare l'esperienza degli utenti, la validazione lato client potrebbe essere bello. Consente inoltre di evitare le richieste non necessarie al server.

Solo validazione lato client non è sufficiente e può essere facilmente bypassata disattivando javascript per esempio.

ti consiglierei di iniziare sempre con l'aggiunta di validazione lato server e una volta che hai provato, è possibile attivare la convalida lato client.

Altri suggerimenti

Non fare affidamento su lato client CONVALIDA !!!
E 'solo lì per l'utente onesto. L'utente disonesto può ottenere intorno ad esso in nessun tempo.

Se chiudo fuori Javascript, posso martellare la vostra applicazione di merda. Sempre mettere validazione lato server ... non è così difficile

Web Form

''# VB
If Page.isValid Then
    ''# submit your data
End If

// C#
if(Page.isValid) {
    // submit your data
}

MVC

''# VB
If ModelState.IsValid Then
    ''# submit your data
End If

// C#
if(ModelState.IsValid) {
    // submit your data
}

Una volta che il validazione lato server funziona, poi andare avanti e aggiungere la validazione lato client. Si farà la migliore esperienza per l'utente

Una cosa che mi sento di raccomandare è usare FluentValidation , xVal e JQuery insieme per eseguire la convalida del client e lato server sulla base delle stesse regole .

FluentValidation è un framework basato su regole che convalida .net oggetti sul lato server. Viene fornito con un fornitore di regole per xVal , che è un altro framework che permette di collegare la vostra scelta del server laterali e validazione lato client framework. Esso supporta la generazione di validatori JQuery sul lato client

In generale su entrambi i lati. Il lato client può essere facilmente bypassato intenzionalmente o innocentemente (con prevalenza di noscript) ma la pena avere per ragioni di usabilità.

Quanto alla questione se presenta un rischio per la sicurezza. Che cosa stai usando l'input dell'utente e qual è la natura attuale del convalida?

Se si tratta solo di controllare che qualcuno ha compilato i campi obbligatori in un modulo è forse improbabile che ci sarebbe stato un rischio per la sicurezza.

E 'necessario per utilizzare a affinchè non convalida sul lato server, in quanto convalida clie-laterale può essere facilmente aggirato.

Se si vuole avere un'esperienza più incredibile utente btter, uso validazione lato client troppo. Questo aumenta anche le prestazioni, in quanto riduce il numero di richieste HTTP al server, perché le forme non validi non verranno inviati al server.

La maggior parte comune sta usando sia client che server di validazione lato.

  

sarebbe solo la convalida dell'input sul lato client è sufficiente per il mio sito web senza presentare rischi per la sicurezza?

No, si dovrebbe utilizzare la convalida lato server troppo. E 'abbastanza semplice da rimuovere con convalida del client (per esempio) Firebug. Ovviamente dopo aver rimosso lato client malfattore convalida può inviare i dati al server. Così la validazione lato server è fortemente necessaria anche.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top