Pergunta

Ao passar variáveis de uma página para outra

Para evitar que o usuário mexa nos valores dos parâmetros de URL

É melhor ...

1) passar a variável via sessão

2) passe a variável no URL junto com uma assinatura

Foi útil?

Solução

Contanto que você esteja passando uma assinatura, não importa onde você está passando os valores, porque você sempre verificará a integridade da assinatura

O que eu faria é passar tudo (incluindo a assinatura) na sessão.Apenas para manter o URL limpo.Mas isso depende de você e de seu caso de uso específico.

Outras dicas

Se você usar a sessão, o usuário não poderá controlar o conteúdo dos valores.

Além disso, se você tiver a criptografia de estado de exibição habilitada, poderáuse o estado de exibição.A vantagem do estado de exibição é que ele está localizado em uma única página.Isso significa que quando o usuário tem duas guias abertas no seu site, as variáveis são localizadas nas guias específicas.

Consulte http://www.codeproject.com/KB/viewstate/AccessViewState.aspx para saber como acessar o estado de exibição de outra página.

Depende do seu caso de uso.A sessão é, na maioria dos casos, mais segura.Se alguém pode comprometer o seu servidor para obter os dados da sua sessão, então você tem coisas diferentes com que se preocupar.No entanto, seria ruim se você armazenar os dados da sessão em um lugar onde outras pessoas possam vê-los ;-).

Assinatura de URL poderia teoricamente ser forçada bruta.Como os parâmetros provavelmente são curtos e às vezes podem ser previsíveis, isso pode dar a alguém que entende de criptografia algum ponto de ataque.No entanto, isso não é trivial.Mas se a segurança for a melhor opção para você, eu não permitiria que esses dados saíssem do seu servidor.

Se você está realmente preocupado com o usuário enlouquecendo e eliminando parâmetros, então você pode ir com os estados de sessão, no entanto, você pode perder histórico, ou seja, botões Voltar Avançar.

A segunda opção parece boa, mas se o usuário estiver removendo coisas, você não pode ter certeza de que o parâmetro existiu.

Portanto, uma mistura dos dois parece boa.

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