2

だから私は自分のウェブサイトに2coで支払いシステムを実装しています. 私は彼らの「ヘッダーリダイレクト」を使用しています。これは、支払いが成功した後、顧客を私のウェブサイトの ASPX ページに返します。

とにかく、私は疑問に思っていました。これを確保する適切な方法は何ですか?顧客が「Payment.aspx?params-here」などのパラメーターを自分で入力し、必要に応じてアカウントにクレジットを追加した場合はどうなりますか。

これが 100% 本物であることを確認するにはどうすればよいですか?

提案?ありがとう!

4

1 に答える 1

2

パラメータ改ざんの解決策は、通常、クエリパラメータを簡単に操作できないものにマッピングすることです。たとえば、一方向ハッシュ関数を使用して元のパラメータと一緒に送信するダイジェストを作成し、特定のマッピングの期間を制限します。ダイジェストは有効です。ダイジェストがクエリパラメータと一致する場合は、リクエストが改ざんされていないことがわかります。

例:URL

Payment.aspx?Amount=100

になる可能性があります

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

これは、このトピックに関する古いがまだ関連性のある詳細な記事です:改ざん防止クエリ文字列パラメータの受け渡し

ASP.NETPage.EnableEventValidationでは、フォームの一部として非表示のテキストボックスを使用して、フォームから要求が発行されたことを検証するために使用できます。

EnableEventValidationプロパティがtrueに設定されている場合、ASP.NETは、コントロールイベントがそのコントロールによってレンダリングされたユーザーインターフェイスから発生したことを検証します。コントロールは、レンダリング中にイベントを登録し、ポストバックまたはコールバック処理中にイベントを検証します。たとえば、ページのレンダリング時にリストコントロールに1、2、または3の番号が付けられたオプションが含まれ、オプション番号4を指定してポストバック要求が受信された場合、ASP.NETは例外を発生させます。ASP.NETのすべてのイベント駆動型コントロールは、デフォルトでこの機能を使用します。

于 2012-02-19T03:19:48.280 に答える