Question

Je n'ai besoin d'analyser que l'URL Request.Querystrings sur GET, pas sur la publication, n'est-ce pas?

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

On ne peut pas s’attendre à ce que l’utilisateur modifie l’URL dans la demande de publications ultérieures, ou le peut-il?

Motivation pour la question-- Je ne contrôle pas l'extrait de code javascript faisant la publication (postback). C'est donc pour moi une sorte de blackbox.

Était-ce utile?

La solution

L'URL ne devrait pas changer. Mais rappelez-vous que chaque publication est une nouvelle instance de votre classe de page. Donc, si vous n'avez pas sauvegardé les résultats quelque part sur la première vue, vous devez être prêt à le refaire lors de la vue suivante, etc. Dans ce cas, vous l’avez sauvegardé dans ViewState et tout devrait bien se passer.

Cependant, je suppose que vous ne poseriez pas la question à moins que vous n'ayez observé un comportement qui vous laisse présumer le contraire. Alors, considérons un instant ce qui pourrait causer cela:

  • Il est possible de modifier ViewState sur le client où vous avez enregistré vos résultats (bien que ce ne soit pas anodin et vraiment déconseillé).
  • Vous pouvez simuler une publication avant la page d'affichage initiale.
  • Vous pouvez utiliser javascript pour modifier l'URL publiée.

Cependant, vous saurez certainement si vous avez écrit quelque chose pour le faire.

Autres conseils

Votre hypothèse est correcte, l'URL ne devrait pas être modifiée dans les relances de sous-équation et vous devez analyser la chaîne de requête uniquement dans GET, ce qui se produit lors du premier chargement de la page.

L'URL ne change pas normalement pour une publication.

Il est bien sûr possible d'utiliser un outil tel que FireBug pour modifier l'URL dans la balise de formulaire avant la publication, mais vous ne souhaiterez probablement pas la valeur que l'utilisateur a injectée, mais la valeur d'origine.

Comme d'autres l'ont souligné, l'URL ne devrait pas changer. Bien sûr, si nous vivions dans un monde parfait, vous ne recevrez jamais de spam par courrier électronique et personne ne tentera jamais de faire quelque chose de malveillant pour votre site Web.

Dans le monde réel, vous devez vous attendre à ce que des personnes mal intentionnées tentent de pirater votre site Web et à vous préoccuper de choses comme attaques par injection

Vous ne devez jamais présumer que les données reçues sur une publication sont valides.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top