サードパーティのWebサイトからの返却クエリストリングを保護します
-
27-10-2019 - |
質問
だから私は自分のウェブサイトに2COを含む支払いシステムを実装しています。私は彼らの「Header Redirect」を使用しています。これは、支払いが成功した後、Querystringsの束で顧客を私のウェブサイトのASPXページに返送します。
とにかく、私は疑問に思っていました。これを確保するための適切な方法は何ですか?顧客が「Payment.aspx?params-here」などのパラメーターを入力し、アカウントに希望するようにクレジットを追加した場合はどうなりますか。
これが100%本物であることを確認するにはどうすればよいですか?
提案?ありがとう!
解決
のソリューションアプローチ パラメーターの改ざん 通常、クエリパラメーターを簡単に操作できないものにマッピングします。たとえば、一方向ハッシュ関数を使用してダイジェストを作成して元のパラメーターとともに送信し、特定のマッピング/ダイジェストが有効な期間を制限します。ダイジェストがクエリパラメーターと一致する場合、リクエストが改ざんされていません。
たとえば、URL
Payment.aspx?Amount=100
になる可能性があります
Payment.aspx?Amount=100&Digest=53e5e07397f7f01c2b276af813901c2
これは、このトピックに関する古いが関連性のある詳細な記事です。 パッシング改ざん防止クエリストリングパラメーター
ASP.NETで使用できます Page.EnableEventValidation
フォームの一部として非表示のテキストボックスを使用して、フォームからリクエストが発行されたことを検証します。
EnabableVentValidationプロパティがTrueに設定されている場合、ASP.NETは、そのコントロールによってレンダリングされたユーザーインターフェイスからコントロールイベントが発生したことを検証します。コントロールは、レンダリング中にイベントを登録し、ポストバックまたはコールバック処理中にイベントを検証します。たとえば、リストコントロールにページがレンダリングされたときに1、2、または3の番号が付けられたオプションが含まれている場合、およびオプション番号4を指定するポストバック要求を受信した場合、ASP.NETは例外を提起します。 ASP.NETのすべてのイベント駆動型コントロールは、デフォルトでこの機能を使用します。