Quando fazemos a validação pelo angular, devemos fazer no backend também? Minha duvida é se é possível burlar a validação do formulário em angular 2 assim como é possível em um formulário com um simples javascript.
Quando fazemos a validação pelo angular, devemos fazer no backend também? Minha duvida é se é possível burlar a validação do formulário em angular 2 assim como é possível em um formulário com um simples javascript.
Validar dados sendo enviados pelo usuário só no javascript não é o suficiente por causa de:
*Se o usuário desativar o javascript, você pode acabar com dados inválidos no servidor
*Se o usuário for malicioso, pode mandar dados inválidos para o servidor
*No caso de um ataque MITM, a validação no servidor seria um dificultador a mais
*Validações no servidor fazem um site menos suscetível a robôs maliciosos
Em resumo... vale a pena precaver contra todos esses agentes desconhecidos, fazendo a validação no servidor (que é o agente mais confiável) como sendo a principal... e no javascript, como sendo um agilizador de validação, por não necessitar de ir no servidor.
Nota: apesar de ter mencionado várias formas de ataques que podem ocorrer, não significa que somente a validação no servidor vá resolver tudo. Outras medidas são necessárias contra um Man In The Middle por exemplo, como usar certificado SSL para o seu domínio, entre outras.
Wellington, não deixe de marcar a resposta da Amanda como solução, blz?
Em suma, você deve ter a validação no cliente e no backend. No cliente para melhorar a experiência do usuário já indicando que algo esta errado antes de gerar a requisição e no backend para garantir que independente do cliente utilizado (SPA , Android, ios, etc) a validação seja sempre executada.
Ah wellington, essa prática de validação do back não é exclusiva do Angular! Aplicações web tradiciobais também!
Vai uma dica: se você esta começando a criar aplicações web começando primeiro por SPA não faça isso. SPA são mais complexas e requerem que o desenvolvedor resolva uma série de questões que já são resolvidas por padrão em uma aplicação web tradicional. A escolha de uma SPA é uma escolha arquitetural e se você optou por optar pode comprometer seu entendimento de web como um todo.
Se você já tem experiência em criar aplicações web, não há problema algum e ignore o que eu disse.
Talvez esse podcast possa ampliar a questão:
Amanda e Flavio, obrigado pelos esclarecimentos.
Apesar de saber que o Angular é em javascript que roda no client, eu achei que ele tivesse alguma verificação com o codigo que esta no servidor, detectando quando há alguma alteração intermediaria no script.
(programador preguiçoso falando...) seria muito legal se desse para escrever a validação apenas uma vez, tentei fazer isso usando o nodejs, reaproveitando o mesmo código do cliente no servidor.
Acho que vi algo do tipo com o meteorjs.