Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

sobre token

fala ae pessoal, eu nao entendi como e feita a verificaçao do token no lado do servidor, pelo que eu entendi eu pego o valor do token no html e passo para ajax, quando e feita a verificaçao se o token e valido?

no outro exemplo de preenchimento do cadastro , o valor do token nao foi obtido da mesma forma que no ajax(acessando o atributo), como foi feito?

3 respostas

Olá Luan, tudo certo?

Como a página está usando uma tag helper, as informações desse formulário são geradas a partir do próprio servidor. Então o servidor gera o token dentro daquele campo oculto do form. Ao usar a marcação [ValidateAntiForgeryToken] é necessário o uso de um token válido, que neste caso é fornecido pelo formulário.

O botão de alterar a quantidade é clicado, uma requisição do tipo post é feita para um método do controller que não retorna uma action (então, não haverá mudança de página). Com o token válido, o valor é atualizado internamente na aplicação e retornado o novo valor. O Ajax captura esse novo valor que foi retornado e atualiza no html.

Na tela de cadastro o processo foi mais simples. O link do carrinho chama a action de cadastro e como tudo já está no banco de dados fica mais fácil recuperar as informações. O cadastro pode já vir preenchido se já houver informações referentes àquele usuário porque é feita uma requisição HTTP para isso. Então as informações são puxadas diretamente dos dados do repositório.

Espero ter ajudado!

fala ae fabiano obrigado pelo retorno, compreendi com e gerado o token e é feita a validaçao, mas por que quando utilizo o ajax devo passar o token junto? la no cadastro ele ja nao pega o token e valida pelo fato de usar a tag helper e ter o atibuto de validaçao no metodo, nesse metodo de update tem a mesma coisa mas e necessario passasr o token pelo ajazx , isso que nao compreendi muito bem.

solução!

Na verdade não. Existe uma categoria de ataques a sistemas web que você escreve um código para manipular um outro sistema. Por usar o Ajax, é possível que faça uma requisição de fora do site e manipule o back-end. Por isso precisa de validação em todas as etapas.

Afinal, toda segurança é pouco :)