Question

Je suis en place un système de paiement avec 2CO sur mon site. J'utilise leur « en-tête Redirect » qui renvoie le client à une page ASPX sur mon site avec un tas de querystrings après un paiement réussi.

Quoi qu'il en soit, je me demandais. Quelle est la bonne façon d'obtenir cela? Que faire si un client a tapé les paramètres lui / elle-même comme `Payment.aspx? Params-ici et des crédits supplémentaires comme ils le souhaitent à leur compte.

Comment puis-je faire en sorte que ce soit 100% authentique?

Suggestions? Merci!

Était-ce utile?

La solution

Approche Une solution paramètre est la cartographie altération généralement les paramètres de requête à quelque chose qui ne peut pas être facilement manipulé, par exemple en utilisant une fonction de hachage à sens unique pour créer un condensé pour envoyer en même temps que le paramètre d'origine et de limiter la durée pendant laquelle un mappage particulier / digestion est valide. Si le résumé correspond à la requête paramètre que vous connaissez la demande n'a pas été falsifié.

par exemple. votre URL

Payment.aspx?Amount=100

pourrait devenir

Payment.aspx?Amount=100&Digest=53e5e07397f7f01c2b276af813901c2

Voici un vieux mais encore l'article pertinent, détaillé sur le sujet: Passer QueryString infalsifiable paramètres

Dans ASP.NET, vous pouvez utiliser Page.EnableEventValidation qui utilise une zone de texte caché dans le cadre d'une forme de valider qu'une demande a été émis à partir de la forme:

Lorsque la propriété EnableEventValidation est définie sur true, ASP.NET Valide qu'un événement de régulation provient de l'interface utilisateur que a été rendu par ce contrôle. Un contrôle enregistre ses événements au cours de le rendu et puis valide les événements au cours de postback ou de rappel manipulation. Par exemple, si un contrôle de liste comprend des options numérotées 1, 2 ou 3 lorsque la page est rendue, et si une demande de postback est reçu spécifiant l'option numéro 4, ASP.NET déclenche une exception. Tout contrôles événementielles dans ASP.NET utilisent cette fonctionnalité par défaut.

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