PHP возвращает ошибку 402 при запросах

#php #curl

#php #curl

Вопрос:

Внезапно все запросы, сделанные PHP на внешние серверы (cURL, file_get_contents(URL)), возвращают странную ошибку HTTP 402. Сначала я подумал, что это проблема в API Flickr, но, тестируя разные URL-адреса (AFAIK только на HTTPs), я продолжаю получать эту ошибку.

Проблема в том, что на моем локальном хостинге PHP имеет ту же конфигурацию (или, по крайней мере, должна быть), тот же скрипт, и он работает нормально.

Журналы ничего не показывают. Есть идеи, в чем может быть проблема? Спасибо

Комментарии:

1. что вы делаете, чтобы получить ошибку «Требуется оплата»?

2. «или, по крайней мере, должно быть» подтверждение этого вне всякого сомнения должно быть вашим первым шагом. Кроме того, попробуйте URL-адреса, отличные от https, чтобы исключить любую проблему.

3. @Fallenreaper Я действительно не знаю!!! Я думаю, ничего, поскольку он работает на localhost.

4. @PatrickQ, я протестировал несколько URL-адресов, похоже, проблема связана с URL-адресом API Flickr. Странно то, что если я вызываю URL с помощью wget с теми же параметрами, API выдает мне правильный результат. PHP имеет ту же конфигурацию!

5. Мы начали испытывать эту проблему на некоторых (но не на всех) наших серверах с помощью PHP file_get_contents() в 08:26 UTC в среду. Мы предоставляем ключ API, и использование того же ключа API с cURL через терминал работает нормально — так что это действительно странное поведение.

Ответ №1:

Я связался с командой Flickr, и вы можете проверить результат здесь: https://groups .yahoo.com/neo/groups/yws-flickr/conversations/topics/8912

Извините за неудобства. Если на вас повлияли 402, пожалуйста, напишите мне свои ключи API, и мы сможем вас разблокировать. Мы получали повторяющиеся атаки (в основном от EC2), и нам пришлось блокировать некоторый подозрительный трафик на выходных. Возможно, мы были слишком агрессивны и блокировали пользователей API, чего не должны были делать.

У них были некоторые проблемы с атаками из AWS EC2, просто связались с ними, чтобы решить эту проблему.