2012-03-14 3 views
0

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

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

ответ

1

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

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

Возможно, вы можете что-то сделать с свойством «issu_at» как nonce, но я недостаточно проверял, правильно ли он работает во всех запросах.

1

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

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

+0

Вы правы. 'access_token' - еще одна шоу-стоппер. Ну, тогда не нужно беспокоиться о том, как обращаться с хостом. – Gajus

+0

(так что, конечно, не позволяйте никому получать секретное приложение) – Igy

Смежные вопросы