3

私のアプリでは、ユーザーは Facebook に署名でき、アプリはユーザーのアクセス トークン (「abc」など) を持っています。このトークンを使用して、自分のサーバーにユーザーを作成したいと考えています。

このアクセス トークンを (SSL を使用して) サーバーに送信し、サーバーでhttps://graph.facebook.com/me?access_token=abcを使用してユーザーのユーザー名と ID を取得し、トークンが属するアプリケーションを確認しても安全ですか。 to は私のhttps://graph.facebook.com/app?access_token=abcです。それが私のアプリケーションの場合、ユーザーをユーザーのデータベースに保存したり、ログインしたりします。

このシステムはだまされますか?誰かが別の誰かとしてログインできる方法を考えられますか?

4

2 に答える 2

2

利用可能なさまざまな認証フローを確認するには、すべての認証ドキュメントと Oauth 仕様を確認してください。

大まかに言えば、アクセス トークンに基づいてサーバー上にユーザーを作成できます。Facebook から同じユーザー ID のアクセス トークンを取得すると、それが同一人物であることが合理的に確信できます。

アプリに非常に高いセキュリティが必要な場合は、ユーザーのアクセス トークンがマルウェアまたは Facebook ユーザーがだまされて生成されていないことを確認するための手順を実行できます。サーバー側認証のドキュメントにCSRF に対する保護を示す例があります。使用できる再認証フロー

于 2012-08-16T17:39:10.527 に答える
1

これには Facebook SDK を使用していると仮定します。その場合、Facebook SDK がセキュリティを管理し、何も心配する必要はありません。SDK なしで API にアクセスしていると仮定すると、2 つのことがあります。注意しなければならないこと:

1) 認証トークンの有効期限が頻繁に切れる (Facebook はユーザーを確実に保護するために多大な努力を払ってきました)

2) 認証トークンだけでリクエストを行うだけでは十分ではありません。fb がサーバー フロー認証を呼び出す追加のレイヤーが追加されているため、特にこのサーバー側で実行している場合は、偽造できない必要がある他のパラメーターがいくつかあります。

3) その上、アプリケーションが一部のデータにアクセスするためにユーザーが付与する必要がある多くのアクセス許可が用意されています。以下のリンクは、認証に関する優れた記事を提供しています。

https://developers.facebook.com/docs/authentication/

要するに安全です。

于 2012-08-16T17:35:16.043 に答える