none
ViewState é seguro?? RRS feed

  • Pergunta

  • Fala ae Comunidade,

     Estou com a seguinte dúvida, eu guardo alguns valores monetários em ViewState, porém estou preocupado se existe alguma maneira de um usuário mal intencionado capturar esse valor e altera-lo e conseguir enviar essa página para o servidor ou seja executar um submit. Alguém sabe se isso é possível tanto no Asp.Net 1.1 como no 2.0.

    Na dúvida é melhor perguntar né.. rs

    vlw mais uma vez galera

    att,
    Leandro Ribeiro

    sábado, 10 de junho de 2006 19:05

Respostas

  • Olá Leandro,

    AS viewstates servem para guardar os valores seriarlizados dos objetos da página entre os postbacks das paginas.

    Por default os valores são salvos serialiando os objetos e valores por e armazenando por via Triplet, Pair, ArrayList, Arry.


    O menos conhecido dos 4 é o Ttripet que é uma classe do framework e pdoe ser visto emmais detalhes em :

    http://msdn2.microsoft.com/en-us/library/system.web.ui.triplet.aspx

    Veja o artigo abaixo onde se explica como criar um viewer para ler viewstate das paginas :

    http://www.codeproject.com/aspnet/viewstate_viewer.asp

    A recomendação básica e que não se guarda nenhum valor "seguro" que possa ir para o cliente.

    Existe uma forma de tornar mais seguro modificações na viewstate criando um hash de seu conteúdo , assim quando for modificado o valor o hash muda  sendo dectedato no servidor , voltando ao seu estado original.

    Isso pode ser feito aplicando na diretiva de página :

    <%@Page EnableViewStateMAC=true %>

    Pode-se tambem critogafar usando o algoritimo SHA1 (default) o que dificulta um pouco  a modificação porem isso é possível. Alem deste algoritimo pode-se usar outros como o MD5. Estas modificações  porem são feitas no arquivo machine.config do servidor web.

    Um ótimo artigo sobre viewstate , e seus recursos pdoe ser visto em :

    http://msdn.microsoft.com/netframework/downloads/samples/default.aspx?pull=/library/en-us/dnaspnet/html/asp11222001.asp

     

    domingo, 11 de junho de 2006 13:59
    Moderador
  • Leandro, os dados do ViewState ficam encriptados junto ao código HTML da página, mas isso ainda não dá segurança, talvez você utilizar um outro algoritmo de criptografia lhe dê um pouco mais de segurança.

     

    domingo, 11 de junho de 2006 01:47

Todas as Respostas

  • Leandro, os dados do ViewState ficam encriptados junto ao código HTML da página, mas isso ainda não dá segurança, talvez você utilizar um outro algoritmo de criptografia lhe dê um pouco mais de segurança.

     

    domingo, 11 de junho de 2006 01:47
  • Olá Leandro,

    AS viewstates servem para guardar os valores seriarlizados dos objetos da página entre os postbacks das paginas.

    Por default os valores são salvos serialiando os objetos e valores por e armazenando por via Triplet, Pair, ArrayList, Arry.


    O menos conhecido dos 4 é o Ttripet que é uma classe do framework e pdoe ser visto emmais detalhes em :

    http://msdn2.microsoft.com/en-us/library/system.web.ui.triplet.aspx

    Veja o artigo abaixo onde se explica como criar um viewer para ler viewstate das paginas :

    http://www.codeproject.com/aspnet/viewstate_viewer.asp

    A recomendação básica e que não se guarda nenhum valor "seguro" que possa ir para o cliente.

    Existe uma forma de tornar mais seguro modificações na viewstate criando um hash de seu conteúdo , assim quando for modificado o valor o hash muda  sendo dectedato no servidor , voltando ao seu estado original.

    Isso pode ser feito aplicando na diretiva de página :

    <%@Page EnableViewStateMAC=true %>

    Pode-se tambem critogafar usando o algoritimo SHA1 (default) o que dificulta um pouco  a modificação porem isso é possível. Alem deste algoritimo pode-se usar outros como o MD5. Estas modificações  porem são feitas no arquivo machine.config do servidor web.

    Um ótimo artigo sobre viewstate , e seus recursos pdoe ser visto em :

    http://msdn.microsoft.com/netframework/downloads/samples/default.aspx?pull=/library/en-us/dnaspnet/html/asp11222001.asp

     

    domingo, 11 de junho de 2006 13:59
    Moderador