Intereting Posts
Какая переменная $ _SERVER предоставляет полный URL php / timeout / соединение с перезагрузкой сервера? Как получить число Facebook любит? Как проверить правильность выполнения запроса UPDATE mysqli? Как избежать ограничений на вложение / создание объектов PHP? Как получить реферер, платные / натуральные и ключевые слова для текущего посетителя на PHP с помощью новой Google Analytics? Ключ раздела Cassandra для данных временных рядов Каков наилучший способ передать HTML-код для встраивания через rss-канал в rss-парсер в php? PHP mkdir () и fopen () не работают – проблема с разрешениями? проблема umask? Чтение большого текстового файла php Есть что-то вроде Acegi для PHP? Как создать ссылку для загрузки сгенерированных документов в symfony2? Как получить первичный идентификатор до или в то же время он создается? Нужна помощь в разделении строки в переменной и присвоении ее частей массиву PHP Добавить строку в текстовый файл

Ошибка 0x1408F10B: «SSL3_GET_RECORD: неправильный номер версии» с SDK PayPal

Похоже, что PayPal может обновить свои системы в свете атаки POODLE , в результате чего сайты, использующие SDK PHP PayPal, сломаются.

Я получаю сообщение об ошибке:

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 

Что бы вы порекомендовали исправить, не ставя под угрозу безопасность?

Solutions Collecting From Web of "Ошибка 0x1408F10B: «SSL3_GET_RECORD: неправильный номер версии» с SDK PayPal"

ОБНОВЛЕНИЕ : Как отметил 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); 

ОБНОВИТЬ:
Просто посмотрел источник на 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 официально выпустили обновление для SDK PHP для решения этой проблемы, которая была опубликована в Github PR Jaffer, связанная с

https://github.com/paypal/rest-api-sdk-php/releases/tag/v0.13.1

Для людей, которые используют https://github.com/Quixotix/PHP-PayPal-IPN , просто установите значение false для force_ssl_v3:

 $listener = new IpnListener(); $listener->force_ssl_v3 = false;