MELHOR FORMA DE VALIDA?ÃO ASP.NET
Boa noite!
Estou aprendendo ASP.NET.
Sobre a validação de dados, eu conheço dois métodos:
O primeiro é validando no lado do cliente, com Javascript ou JQuery.
O segundo é validando pelo servidor, com os controles de Validação (RequiredFieldValidator, etc)
Pelo que tenho ouvido falar, o melhor é fazer o máximo de operações no lado do cliente. Então a primeira opção seria a melhor.
Seria isso mesmo?
Mas como eu faria a troca de informações com o servidor? Exemplo: Criei uma função simples pra validar em Javascript e coloquei no OnClick do botão. Só que, se não validar, eu não quero que o código asp do meu botão rode. Teria alguma propriedade compartilhada pra isso? Para verificar se a função javascript retornou True ou False para eu estar colocando como condicional sobre o codebehind do meu botão?
Obrigado a todos!
Estou aprendendo ASP.NET.
Sobre a validação de dados, eu conheço dois métodos:
O primeiro é validando no lado do cliente, com Javascript ou JQuery.
O segundo é validando pelo servidor, com os controles de Validação (RequiredFieldValidator, etc)
Pelo que tenho ouvido falar, o melhor é fazer o máximo de operações no lado do cliente. Então a primeira opção seria a melhor.
Seria isso mesmo?
Mas como eu faria a troca de informações com o servidor? Exemplo: Criei uma função simples pra validar em Javascript e coloquei no OnClick do botão. Só que, se não validar, eu não quero que o código asp do meu botão rode. Teria alguma propriedade compartilhada pra isso? Para verificar se a função javascript retornou True ou False para eu estar colocando como condicional sobre o codebehind do meu botão?
Obrigado a todos!
Olha cara vou dar minha opnião sobre isso
Caso não seja localhost acho que vale a pena a validação tanto na View (em JavaScript) como na Controller (caso estiver desenvolvendo em MVC)..
Porém dependendo da [Ô]validação[Ô] pode ser uma regra de negócio e ela deverá permanecer na Model e não na Controller, agora se for uma validação por ex:
que checa se o campo é nulo ou foi digitado então você faz na view e na controller (caso seja online)..
Acredito que fazendo isso sua aplicação ficará mais segura.
Caso não seja localhost acho que vale a pena a validação tanto na View (em JavaScript) como na Controller (caso estiver desenvolvendo em MVC)..
Porém dependendo da [Ô]validação[Ô] pode ser uma regra de negócio e ela deverá permanecer na Model e não na Controller, agora se for uma validação por ex:
que checa se o campo é nulo ou foi digitado então você faz na view e na controller (caso seja online)..
Acredito que fazendo isso sua aplicação ficará mais segura.
Regra básica não apenas para desenvolvimento web, mas para qualquer programa em que se tenha cliente/servidor:
Nunca confie nos dados que o cliente te envia.
Não importa se você faz a validação no lado do cliente com javascript, você sempre deve fazer a validação do lado do servidor. Só a validação do lado do servidor vai garantir que os dados são realmente válidos.
A validação do lado do cliente se faz por questão de usabilidade, é mais conveniente para o usuário pois vai ser mais rápida a resposta, e também vai ajudar a diminuir requisições com dados inválidos para o servidor, mas nunca se pode confiar apenas nesta validação, já que ela se aplica apenas a usuários legÃtimos.
Se você fizer apenas no lado do cliente o que pode acontecer é um usuário mal intencionado desativar a sua validação ou até mesmo fazer um post direto para o seu servidor e enviar os dados que ele quiser.
Nunca confie nos dados que o cliente te envia.
Não importa se você faz a validação no lado do cliente com javascript, você sempre deve fazer a validação do lado do servidor. Só a validação do lado do servidor vai garantir que os dados são realmente válidos.
A validação do lado do cliente se faz por questão de usabilidade, é mais conveniente para o usuário pois vai ser mais rápida a resposta, e também vai ajudar a diminuir requisições com dados inválidos para o servidor, mas nunca se pode confiar apenas nesta validação, já que ela se aplica apenas a usuários legÃtimos.
Se você fizer apenas no lado do cliente o que pode acontecer é um usuário mal intencionado desativar a sua validação ou até mesmo fazer um post direto para o seu servidor e enviar os dados que ele quiser.
é como o OCELOT disse, a validação deve ser feita tanto no client quanto no servidor. Existem muitos casos em que a validação também depende de dados do servidor, e para isso, existem várias maneiras. Por exemplo, um campo de código que você precisa conferir no banco de dados o código digitado. Nesses casos, como uso sempre WebAPI, faço uma simples chamada AJAX e confiro os dados no cliente. Ao enviar o form, novamente a validação, dessa vez de todos os campos e valores enviados, incluindo para [Ô]limpeza[Ô] de engraçadinhos mandando código HTML ou tentativas de SQL injection, que são prontamente logadas, incluindo o IP do client e, se disponÃvel, o login do usuário.
Não querer que o ASP renderize caso a validação não esteja ok, é impossÃvel quando seu form envolve o postback para gravação dos dados. E esse é o seu primeiro caso que avisei que aconteceria de que controlar a ação dos controles runat=server, é muito, mas muito mais difÃcil do que escrever um HTML simples que integre com uma WebAPI.
Não querer que o ASP renderize caso a validação não esteja ok, é impossÃvel quando seu form envolve o postback para gravação dos dados. E esse é o seu primeiro caso que avisei que aconteceria de que controlar a ação dos controles runat=server, é muito, mas muito mais difÃcil do que escrever um HTML simples que integre com uma WebAPI.
Tópico encerrado , respostas não são mais permitidas