Usuário com melhor resposta
ViewState é seguro??

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
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.
http://msdn2.microsoft.com/en-us/library/system.web.ui.triplet.aspxVeja o artigo abaixo onde se explica como criar um viewer para ler viewstate das paginas :
http://www.codeproject.com/aspnet/viewstate_viewer.aspA 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 -
Todas as 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.
http://msdn2.microsoft.com/en-us/library/system.web.ui.triplet.aspxVeja o artigo abaixo onde se explica como criar um viewer para ler viewstate das paginas :
http://www.codeproject.com/aspnet/viewstate_viewer.aspA 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