Обработка подписанного запроса. Должен ли я проверить реферала? - PullRequest
0 голосов
/ 14 марта 2012

Должен ли я проверять хост реферера при обработке signed_request, предположительно отправленного Facebook? Насколько я вижу, это было бы полезно, только если secret key скомпрометирован.

Похоже, что все signed_requests отправлены с 86.29.235.94. Но это может быть и региональная вещь.

Ответы [ 2 ]

1 голос
/ 14 марта 2012

Нет, реферер не предсказуем. Вокруг этого нет определенных правил, и это может быть изменено. Кроме того, некоторые пользовательские агенты даже не отправляют.

К сожалению, схема signature_request не обеспечивает конфиденциальности данных (с помощью шифрования) или целостности источника, но вы получаете целостность данных, так что вы можете быть уверены, что в какой-то момент Facebook сгенерировал действительный подписанный запрос. Для проверки вам просто нужно проверить подпись. Это не гарантирует, что вы не станете жертвой повторной атаки, но я не думаю, что кто-либо когда-либо решал эту проблему.

Вы можете быть в состоянии сделать что-то со свойством "assign_at" как одноразовый номер, но я недостаточно протестировал, чтобы узнать, работает ли он правильно во всех запросах.

1 голос
/ 14 марта 2012

Если секрет вашего приложения скомпрометирован, получение недопустимого подписанного подписи является, вероятно, наименьшим из ваших беспокойств

Злоумышленнику также необходимо получить действительный токен доступа для одного из пользователей вашего приложения, чтобы внедрить подписанный запрос для предоставления им доступа к вашему приложению, не так ли?

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