2012-03-29 16 views
0

Facebookアプリを作成しています。 Facebookはiframeにアプリビューを表示し、POSTパラメータでsigned_requestを与える。signed_requestは安全ですか?

誰かが他のsigned_request文字列を取得した場合、彼はそれをアプリに投稿できます。

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

Signed_requestは改ざんに対する登録者です。一方、アプリは調整されていないデータを受け入れます。

Facebookのアプリが何かをチェックする必要がありますか?たとえば、issued_atの値です。私はsigned_requestをどのように処理するのだろうか。 FacebookのPHP SDKはそれをクッキーに設定します。大丈夫です?

答えて

2

を正しくチェックすると、となります。 application-secretで暗号化されたデータオブジェクトはJSONです。攻撃者はこの鍵で暗号化することはできません。誰にも知らせないからです。あなたが今までにあなたのapplication-secretを漏らしたことがあるなら、あなたは真剣に多くの方法で悩まされました。あなたの心配の最後はsigned_requestです。

データを復号化し、結果として得られたJSONを解析して、受信した要求と一致することを確認する必要があります。攻撃者が以前の使用から盗聴したsigned-requestを送信した場合、盗まれた要求にのみ一致するため、任意の要求で送信することはできません。 このチェックを行うのはコードの責任です。使用されているライブラリと設定に応じて、これがFacebook APIクライアントライブラリの機能である可能性があります。

signed request page at Facebook Developers

を参照してください。そして、Facebookのセキュリティ上のさらなる読書のために、OWASPで優れたDeveloping Secure Facebook Appsドキュメントを参照してください。

+0

ありがとうございました!遅い回答には申し訳ありません。 私の同僚はまた、私はあまりにも心配だと私に言った。 – Shinya

関連する問題