Paypalは [〜#〜] poodle [〜#〜]attack を考慮してシステムを更新したようで、PHP破るPaypal SDK。
エラーが表示されます:
Paypal/Exception/PPConnectionException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
/var/www/site/vendor/Paypal/sdk-core-php/lib/Paypal/Core/PPHttpConnection.php:91
/var/www/site/vendor/Paypal/sdk-core-php/lib/Paypal/Core/PPAPIService.php:66
/var/www/site/vendor/Paypal/sdk-core-php/lib/Paypal/Core/PPBaseService.php:82
/var/www/site/vendor/Paypal/adaptivepayments-sdk-php/lib/Paypal/Service/AdaptivePaymentsService.php:97
セキュリティを損なうことなく、これを修正するために何をお勧めしますか?
[〜#〜] update [〜#〜]:Jafferが述べたように、 PaypalのGitHubリポジトリ はすでに 変更をマージします 以下、SDKを更新するだけです。
少なくとも今のところは機能しているように見えますが、実際に使用するプロトコルを調査する必要があります。
\Paypal\Core\PPHttpConfig::$DEFAULT_CURL_OPTS[CURLOPT_SSLVERSION] = 1;
// 0 = default protocol (likely TLSv1), 1 = TLSv1; unsafe: 2 = SSLv2, 3 = SSLv3
CURLを直接使用している他の人には、
curl_setopt($handle, CURLOPT_SSLVERSION, 1);
UPDATE:
ちょうど cURLのソース を検索しました。これらは値です(//
私のコメント):
enum {
CURL_SSLVERSION_DEFAULT, // 0
CURL_SSLVERSION_TLSv1, // 1
CURL_SSLVERSION_SSLv2, // 2
CURL_SSLVERSION_SSLv3, // 3
CURL_SSLVERSION_LAST /* never use, keep last */ // 4
};
要約すると、はい、1はTLSv1であり、コメントから判断すると、おそらく4よりも優れています。
上記のコードを更新しました。
Paypalは、この問題に対処するためのPHP SDKのアップデートを公式にリリースしました。これは、リンクされているGithub PR Jaffer
https://github.com/Paypal/rest-api-sdk-php/releases/tag/v0.13.1
https://github.com/Quixotix/PHP-Paypal-IPN を使用している場合は、force_ssl_v3にfalseを設定するだけです:
$listener = new IpnListener();
$listener->force_ssl_v3 = false;