Неизвестный алгоритм. Ожидаемый спам HMAC-SHA256 в логах - PullRequest
9 голосов
/ 31 августа 2011

Я использую facebook php sdk 3.1.1 и текущую версию facebook JS sdk.Наши пользователи не сообщают об ошибках, но я вижу тонну сообщений журнала ошибок, таких как:

Неизвестный алгоритм.Ожидаемый HMAC-SHA256

Из источника я вижу, что ошибка возникает при чтении подписанного запроса с неправильным алгоритмом кодирования кодирования, но я не уверен, почему это произойдет, так как все подписанные запросыдолжен генерироваться кодом JS facebook.

Кто-нибудь видел такое поведение?Любая идея, насколько это плохо, или это действительно указывает на ошибки?Мне не удалось воспроизвести его по требованию.

Ответы [ 4 ]

3 голосов
/ 09 сентября 2011

Попробуйте зарегистрировать некоторые из параметров signed_request, чтобы проверить их вручную.Например, вы можете изменить строку журнала в Base_Facebook::parseSignedRequest следующим образом:

  self::errorLog('Unknown algorithm. Expected HMAC-SHA256, request='.$signed_request);

Если у вас есть несколько из них в журнале, расшифруйте их вручную или вставьте в конце этого URL:

https://developers.facebook.com/tools/echo?signed_request=

Проверьте, какой алгоритм указан в полезной нагрузке или какие-либо данные искажены.Если вы поделитесь здесь результатами, не забудьте указать личные данные, например значение токена доступа.

Возможно, вы также захотите проверить журналы доступа вашего веб-сервера.Для начала поищите GET-запросы с параметром запроса signed_request, которые произошли примерно в то же время, что и записи в журналах ошибок.

0 голосов
/ 16 ноября 2012

Я просмотрел свои журналы и обнаружил то, что я считаю проблемой. Я обнаружил, что нет точной корреляции относительно метки времени, но существует достаточно тесная корреляция между этой записью в системном журнале и зарегистрированным запросом, использующим реферер bing.

У реферинга bing есть несколько явных признаков родства:

1) URL: http://www.bing.com/fbf/search
2) Компоненты строки запроса:
2a) форма = FBKBFT
2b) pc = FACEBK
2c) signature_request =

Переход к http://www.bing.com/fbf/search загружает то, что выглядит как поисковик Bing на Facebook. Если вы зайдете на Facebook и воспользуетесь поиском вверху, чтобы найти что-то, а затем зайдите на веб-результаты, вы увидите, что он также использует bing.

Я полагаю, что интеграция bing с Facebook как-то передает какие-то недопустимые данные в строке запроса подписанного запроса. К сожалению, я всего лишь системный администратор, а сервер, на котором я вижу это, является одним из моих клиентов. Тот, который не заботится об ошибке. Я отфильтровал его с помощью syslog-ng в отдельный файл журнала вместе с целым рядом других ошибок, связанных с php facebook.

0 голосов
/ 14 сентября 2011

Вероятно, вы выполняете запрос get / post на ту же страницу, где вы создаете объект Facebook. Так что для вашего запроса нет никакого параметра Sign_request, а класс Facebook возвращает эту ошибку для вас:)

Может быть, Google или другие поисковые системы делают запросы на ваш сайт, используя свои сканеры? Это тоже возможность.

Надеюсь, этот ответ будет вам полезен.

0 голосов
/ 06 сентября 2011

Возможно, использовать v3.1.1 SDK? https://github.com/facebook/php-sdk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...