2012-03-29 2 views
0

Я создаю приложение для Facebook. Facebook отображает представление приложения в iframe и дает ему signed_request в параметре POST.Безопасно ли подписано?

Если кто-то получил строку signed_request другого, он может отправить ее в приложение.

curl -F "signed_request=CCuTU8c2…NjMwOTMxIn0" https://app.mydomain.xx/ 

Подписанный_request является зарегистрированным пользователем. С другой стороны, приложение принимает данные, которые не закалены.

Должны ли приложения Facebook проверять что-то для этого? Например, значение issu_at. Интересно, как обращаться с signed_request. PHP SDK от PHP устанавливает его в файл cookie. Все нормально?

ответ

2

Нельзя подделать, , если вы правильно это проверите. Это объект данных JSON, который был зашифрован вашим application-secret. Злоумышленник не сможет зашифровать этим ключом, потому что вы никогда не позволяете никому это знать, верно? - Если вы когда-либо просочились в ваш application-secret, вы серьезно обмазались бы множеством других способов; фальшивый signed_request - последний из ваших забот.

Вам необходимо расшифровать данные и проанализировать полученный результат JSON, чтобы убедиться, что он соответствует запросу, которое вы получили. Если злоумышленник отправляет signed-request, который он понюхал от предыдущего использования, то он не может просто отправить его с произвольным запросом, поскольку он будет соответствовать только запросу, из которого он был украден. Но за ваш код отвечает за код. Возможно, это может быть особенностью вашей клиентской библиотеки Facebook API, в зависимости от используемой библиотеки и конфигурации.

Пожалуйста, смотрите signed request page at Facebook Developers

И для дальнейшего чтения по безопасности Facebook, пожалуйста, см отличного Developing Secure Facebook Apps документа на OWASP.

+0

Спасибо! и я сожалею о своем медленном ответе. Мои коллеги также сказали мне, что я слишком переживаю. – Shinya

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