3

PayPal IPN PHP サンプルコードがあります https://www.x.com/developers/PayPal/documentation-tools/code-sample/216623

わからないので、誰かがそれがどのように保護されているか教えてもらえますか?

例:ネットショップをしています。私はhttpsを持っていません。

  1. http://my-magazine.com/process_pp.phpで PayPal からデータを受け取る 私のサイトは http にあるため、このデータは暗号化されていません。私は正しいですか?そのため (暗号化されていない場合)、一部のハッカーがそれを変更できます。
  2. Paypal での支払いを確認するために https リクエストを送信します。
  3. PayPal は http (https ではなく) で INVALID と応答するため、ハッカーは確認済みで再度変更できます。ハッカーは利益を得ます。

どこが間違っているのか教えてください。他の支払いシステムが使用しているため、混乱していSecretKeyます。送信されたハッシュを確認する必要があります。

4

1 に答える 1

5

あなたの間違いはステップ3にあります。データをHTTPS経由でPayPalに送り返し(正確にはhttps://www.paypal.com/cgi-bin/webscr?cmd=_notify-validateに)、PayPalは同じ上でHTTP応答を送信します(SSLで保護されています) 。 )INVALID/VERIFIED応答との接続。
提示されたSSL証明書を確実に検証する限り、「VERIFIED」応答を受信した 場合、データが本物であると安心できます。

ちなみに、デフォルトのIPN(PHP)サンプルコードは、証明書とcnの検証を強制します。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

使用するときに信頼できるCAバンドルを指定するようにしてください。そうすれば、問題なく使用できます。CURLOPT_SSL_VERIFYHOST(libcurl / openssl)を無効にした場合のセキュリティへの影響も参照してください。

于 2013-02-28T20:31:51.943 に答える