2012-03-14 31 views
0

Facebookで送信されたsigned_requestを処理すると、参照元ホストを確認する必要がありますか?私が見る限り、これはsecret keyが侵害された場合にのみ役立ちます。signed_requestの処理。参照元を確認する必要がありますか?

signed_requestsはすべて86.29.235.94から送信されたようです。しかしそれは地域的なものでもあり得る。アプリの秘密が侵害された場合

答えて

1

いいえ、リファラーは予測できません。その周りに定義された規則はなく、変更の可能性があります。また、ユーザエージェントの中には、送信していないものもあります。

残念ながら、signed_requestスキームでは、データの機密性(暗号化による)やソースの整合性は認められませんが、データの整合性が確保されるため、Facebookがある時点で有効なsigned_requestを生成できます。それを確認するには、単に署名を確認する必要があります。これはあなたがリプレイ攻撃の犠牲者にならないことを保証するものではありませんが、誰もその問題を解決したことはないと思います。

「issued_at」プロパティをnonceとして使用することができますが、すべてのリクエストで正しく動作するかどうかを十分に検証していません。

1

、無効signed_requestを受信すると、おそらくあなたの心配の少なくともです

攻撃者はまた、ためには、アプリケーションのユーザーの一人のための有効なアクセストークンのホールドを取得する必要がありますする必要があります彼らにあなたのアプリへのアクセスを許可するためにsigned_requestを注入するのではないでしょうか?

+0

あなたは正しいです。 'access_token'は別のショーストッパーです。さて、ホストを参照することについて心配する必要はあまりありません。 – Gajus

+0

(もちろん、誰もそのアプリの秘密を手に入れてはいけません) – Igy

関連する問題