Pergunta

Estou ansioso por um método para passar dados de página para página com segurança e evitar, pois é possível adulterar.


  • A melhor maneira de resolvê -lo é salvar os dados confidenciais no servidor DB.
  • Ou usando a sessão persiste no servidor DB.
  • Ou qualquer método que persista dados no servidor DB.

O fato é que o desempenho não gostaria de usar esses métodos.

Não sei se o seguinte é uma maneira segura, mas gostaria de testá -lo. (Mas não sei se é possível)

Gostaria de salvar os dados confidenciais no ViewState no modo de criptografia ... para ex no tespage1.aspx e recuperá -los no testpage2.aspx.

Como posso fazer isso e é seguro?

desde já, obrigado

Foi útil?

Solução

Crie uma classe personalizada para manter seus dados confidenciais.

class myCustomeClass
{
    int id;
    string name;
    currency amount;

    '... properties to access

    '... custom methods

    '... etc.
}

Se você é realmente paranóico incluir métodos para criptografia/descriptografia ... agora, configure campos e propriedades para os dados. Em seguida, Encrypt (opcional). Coloque a coisa no cache ...

Cache.Insert("MySensitiveData", myCustomClass, null, System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration);

Redirecionar para sua outra página

No evento Page_load

MyCustomClass oSensitiveData;

if (!IsPostBack)
{
    oSensitiveData = (myCustomeClass)Cache["MySensitiveData"];
}

É isso, você tem seus dados, se você o criptografar, agora precisa descriptografá -los ...

Existem várias maneiras de fazer isso, mas essa funciona para mim com conjuntos de dados relativamente pequenos. Se você estiver fazendo grandes conjuntos de dados, convém explorar o uso de um banco de dados como SQL Sever, MySQL, etc ... para atuar como um 'cache' para os dados.

Outras dicas

É sempre recomendado que dados confidenciais estejam no servidor não com o cliente. Qualquer coisa que você incorpore na página é um passivo. Como você descartou todas as opções do lado do servidor, o ViewState deve ser a melhor aposta que acredito devido à sua criptografia. Você também pode usar a propriedade Page.EnableViewStatemac para ter a transferência ViewState segura.

Dois problemas aqui ... um, o ViewState não é seguro. Por padrão, é apenas uma codificação Base64 simples. Salve esses dados no servidor, período. Qualquer outra coisa está pedindo problemas. Segundo, o ViewState está perdido quando você vai a uma nova página, por um bom motivo. Não é assim que você passa dados de uma página ASPX para outra.

Além disso, escolher o ViewState em vez de sessões por razões de desempenho não faz sentido na maioria dos cenários. O uso da sessão ou cache no procagem será muito mais eficiente que o ViewState.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top