Pergunta

Eu só preciso Request.Querystrings URL de análise em GET, e não em postback, certo?

if(!IsPostBack)
{
    Viewstate["magic_number"] = Parse(Request.Query);
}

O usuário não pode ser esperado para modificar o URL no Pedido de postbacks subseqüentes, ou podem?

A motivação para question-- eu não controlar o trecho de javascript que faz a postagem, por isso é uma espécie de caixa preta para mim.

Foi útil?

Solução

A URL é não deverá mudar. Mas lembre-se que cada nova postagem é uma nova instância de sua classe de página. Então, se você não salvar os resultados em algum lugar na primeira vista você precisa estar preparado para fazê-lo novamente no próximo, e assim por diante. Neste caso, você salvou-lo para ViewState, e assim que deve ser fino.

No entanto, eu suspeito que você não estaria fazendo a pergunta a menos que você teve comportamento observado que o levou a suspeitar de outra forma. Então, vamos considerar por um momento que as coisas poderiam causar este para quebrar:

  • É possível para modificar ViewState no cliente onde você salvou seus resultados (embora não trivial e definitivamente não recomendado).
  • Você pode fingir uma nova postagem antes da exibição inicial página.
  • Você pode usar javascript para alterar a url postada.

No entanto, para todas essas coisas que você certamente saber se tem escrito nada para fazer isso.

Outras dicas

Seu pressuposto é correto, o URL não é esperado para ser modificado de subequent post backs e você precisa analisar a string de consulta apenas no GET, o que acontece pela primeira vez a página é carregada.

O URL normalmente não mudar para uma nova postagem.

É claro que é possível usar uma ferramenta como o Firebug para editar o URL na marca de formulário antes do postback, mas então você provavelmente não quer que o valor que o usuário injetado qualquer maneira, mas o valor original.

Como já foi salientado, a URL não se espera que a mudança. Claro, se vivemos em um mundo perfeito você nunca iria receber spam de e-mail e ninguém jamais iria tentar fazer algo malicioso para o seu site.

No mundo real, você deve esperar que pessoas mal-intencionadas vão tentar sequestrar o seu site e necessidade de se preocupar com coisas como ataques de injeção

Você deve não fazer suposições de que os dados recebidos em uma postagem é válido.

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