2012-05-14 19 views
4

は、支払いの成功を評価するために、このラインがあります:受信者の電子メールをPaypal IPNスクリプトの重要な部分と比較していますか?標準ペイパルIPNのPHPスクリプトで

if ($_POST["payment_status"] == "Completed" && $_POST["receiver_email"] == $email) 

支払い状況を評価する目的が明らかです。しかし、比較の2番目の部分は、私が知る限り、大きな価値を追加するようには思われません。

$emailという値は、わかっている限り、エラーを出したい場所と支払い確認メールを送信した場所です。 receiver_emailは、Paypalのマーチャントアカウントに添付された電子メールです。

これは同じものではないかもしれないと私には思われます。特に、Paypalサンドボックスでテストをしている間に、アカウントを設定するときに商人の電子メールアドレスが部分的に自動生成されたため、私はそれをやりとりしていました。それで、とにかくメールを受信できる場所ではありません。

メールアドレスが異なる可能性があるので、私の最初の考えは、この比較はあまり重要ではないということです。しかし、おそらく私が紛失している重要な安全保障の考慮事項があります。

この比較は重要ですか?

答えて

2

ポストリクエスト(ボタン)でIPNを送信している場合、悪意のあるユーザーが自分のPayPalアドレスに支払いを行う可能性があるため、ほとんどの場合、重要なチェックです。あなたが持っているので

は2 PayPalはそれを交換することが容易であるアカウント

$_POST["receiver_email"] == $email 

私はあなたのIPNのURLがうまく隠され、アカウントに設定されている場合でも、チェック受信機を飛ばしていないでしょう個人的に

in_array($_POST["receiver_email"], array("myemail1", "myemail2")) 

と。私の単純なアプローチは悪質な要求からあなたを安全に保ちます。

+1

「ビジネス」変数のチェックで十分であるかどうか尋ねることはできますか?それは受信者の電子メールと同じであるようです – lulalala

関連する問題