Frage

Daher implementiere ich ein Zahlungssystem mit 2CO auf meiner Website. Ich verwende ihre "Header -Umleitung", die den Kunden nach einer erfolgreichen Zahlung auf meiner Website auf eine ASPX -Seite auf meiner Website zurücksetzt.

Wie auch immer, ich habe mich gefragt. Was ist der richtige Weg, um dies zu sichern? Was ist, wenn sich ein Kunde die Parameter wie "Payment.aspx? Params-hier" einschrieben und Credits nach Wünschen zu seinem Konto hinzugefügt hat.

Wie kann ich sicherstellen, dass dies zu 100% authentisch ist?

Anregungen? Vielen Dank!

War es hilfreich?

Lösung

Ein Lösungsansatz für Parametermanipulation ist normalerweise die Abbildung der Abfrageparameter auf etwas abgebildet, das nicht leicht manipuliert werden kann, z. B. indem eine Einweg-Hash-Funktion verwendet wird, um ein Verdauung zusammen mit dem ursprünglichen Parameter zu senden und die Dauer zu begrenzen, in der ein bestimmtes Mapping/Digest gültig ist. Wenn der Digest mit dem Abfrageparameter übereinstimmt, wissen Sie, dass die Anfrage nicht manipuliert wurde.

ZB Ihre URL

Payment.aspx?Amount=100

könnte werden

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

Hier ist ein alter, aber immer noch relevanter, detaillierter Artikel zum Thema: Passieren manipulationssichere QueryString-Parameter

In ASP.net können Sie verwenden Page.EnableEventValidation Dies verwendet eine versteckte Textbox als Teil eines Formulars, um zu bestätigen, dass eine Anfrage aus dem Formular ausgestellt wurde:

Wenn die Eigenschaft enableEventValidation auf true eingestellt ist, bestätigt ASP.NET, dass ein Steuerereignis aus der Benutzeroberfläche stammt, die von dieser Steuerung gerendert wurde. A Control registriert seine Ereignisse während des Renders und bestätigt dann die Ereignisse während der Nachback- oder Rückrufbearbeitung. Wenn beispielsweise eine Listensteuerung bei der Rendern der Seite die 1, 2 oder 3 Optionen enthält, und wenn eine Postback -Anforderung angegeben wird, ist ASP.NET eine Ausnahme. Alle ereignisgesteuerten Steuerelemente in ASP.NET verwenden diese Funktion standardmäßig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top