2012-01-25 11 views
11

私のアプリケーションに、あるfacebookユーザーへのアクセストークンがあるとします。 JSコードのこのアクセストークンを私のサイトを訪れる他のユーザーに公開するとセキュリティ上の危険はありますか?もしそうなら、彼らはそれで何をすることができますか?javascriptのfacebookユーザーアクセストークンを公開する際のセキュリティ上のリスクは何ですか?

+1

security.stackexchange.comは、同様に、この質問のために良いフォーラムかもしれません。 –

答えて

9

Facebookのアクセストークンは、トークンへのアクセス権を持っている人には、特定のユーザーに同じ権利をあなたのアプリをしていいます。したがって、あなたのアプリがアクションA、B、Cを実行する権利を取得してその旨のトークンが発行された場合、そのトークンを取得できる他のアプリケーションは、そのトークンが期限切れになるまで)。

はい、リスクがあります。あなたは、あなたのアプリと同じようにFacebookのユーザーと同じ権限を持つべきではないものにアクセスすることからトークンを保護する必要があります。

+3

しかし、アクセストークンの使用はアプリケーションドメインに制限されています。 他のアプリケーションでは使用できないようです。 – Andy

+2

あなたのアプリには、あなたの例によると、Facebook用のアクセストークンがあります。つまり、Facebook上でアクションA、B、Cを実行する権利があります。そのトークンをつかむ人は誰でも、問題のユーザーとしてFacebook上のアクションA、B、Cを実行するのと同じ権利を持ちます。アプリケーションドメインは、他のアプリケーションがトークンを受け入れるのを防ぎますが、Facebookは誰が投稿しているかにかかわらず、それをうれしく受け入れます。このため、OAuthトークンを保護し、短命にする必要があります。 OAuth 2.0ベアラトークンに関するIETFインターネットドラフトは、これを詳細に説明する必要があります。http://self-issued.info/docs/draft-ietf-oauth-v2-bearer.html – jeffsix

+0

私は理解しました。まだ...私は自分の目的のためにアプリを使用しており、他のユーザーはそれに関与していません。私はcronを使って自分の記事に投稿したコメントを読んでみたいです。だから、私はこの日付までに60日間の長いアクセストークンを作成しました。私はそれがサーバー側のスクリプトで使用されていると確信しています。私はそれをdbまたはフラットファイルに保存する必要があります。私が設定したアクセス許可はoffline_accessだった。このアクセストークンが公開されている場合、そのアクセストークンで可能なすべてのアクションは何ですか?言い換えれば、私はそれを他の操作ではなくコメントだけを読み込むように制限するのですか?私はそれを明確にしたと思う? –

13

あなたは

  1. Confused deputyの危険性がある - あなたのコードは、故意または悪意がある、まだ多くのコードに代わって作用することにより、これらの権限を乱用可能性のあるコードに権限を付与されます。 code injection(XSS)を経由して
  2. 盗難 - 資格情報は、XSSの脆弱性を利用して、あなたのページに挿入されたコードによって盗まれ、その後、おそらく犯人としてあなたを起訴ログを生成し、ユーザーに代わって行動するために使用することができます。
  3. 盗聴を経由して盗難 - ブラウザとサーバ間の接続を介して行くの非HTTPSコンテンツがある場合、そのパケットを読み取る能力を持つ盗聴者が認証情報を盗むことができます。
  4. マルウェアによる盗難 - ユーザーのコンピュータでマルウェアが実行されている場合、それらのクレデンシャルをブラウザに送信すると、そのマルウェアに暴露されます。マルウェアはおそらく、ブラウザプロセスが所有するメモリを読み取るか、ブラウザによって書き込まれたファイルをキャッシュする必要があります。
+0

アクセストークンがドメインに限定されていませんか? –

+1

約#4 ...マルウェアが存在する場合、ユーザーはすでに問題に陥っており、送信アクセストークンは別のレベルのセキュリティー欠陥を作成すべきではありませんか?マルウェアがブラウザを制御してアクセスできる場合、サイトにアクセスしてプライベートコンテンツを読むことができるからです。 –

+0

@MuhammadUmer、いいえ。サイトが資格情報Dを使用したログインに応答してそのマシンで実行されているブラウザに資格情報Cを送信すると、そのマシンのマルウェアは資格情報CとDの両方にアクセスできます。マシンは信用証明書Dにしかアクセスできません。違いは、短命のXSRFトークンと組み合わせたDは内部的にCを暗示する可能性がありますが、Cが送信されるとマルウェアはCを乱用するワイドウィンドウを持っています。 –

3

このアクセストークンは、誰でもアクセストークンに許可されている操作を行う場所であればどこでも使用できます。どちらが強力なのでしょうか?

だから、JavaScriptでaccess_tokenはを暴露することは、本当にに依存するから、と送信されているトークンアクセスネットワークのどのタイプ上で実行されるjavascriptいます。

物事がhttpsを超えている場合はJavaScriptが実行されているデバイスは、(画面ロックと言う個人的な携帯電話のブラウザ)そうでない場合は安全であるならば、あなたは何も心配はないはずです。

デバイスは、詐欺師は、ブラウザ上の履歴ファイルスルースヌープされた後ならば、でも誰もが同じユーザーアカウントを使用して、HTTPS、と、一般的に共有インターネットターミナルを言うと、そのアクセストークンを引き出している場合。悪い悪い悪い。

HTTPを介して通信を行う場合は、それは見るために全世界に広く開いたのです。悪い悪い悪い。

あなたは私たちの環境が何であるかについて、この情報のいずれかを与えられていないので、だから、それは非常に漠然とした質問です。だから私の最終的なラインはあまりあいまいではないでしょう。 しないでください! FacebookのJavascript SDKがあなたのためにaccess_tokenを処理するようにします。

2

、開示セキュリティトークンは、私はルート権限を取得Android携帯電話上で動作するソフトウェア「FaceNiff」を覚えている

をハック を得ることのあなたのユーザーが脆弱になる可能性が、それは、Facebookや他のウェブサイトのセキュリティトークンを傍受し、することができますそのWIFIに接続しているユーザーのアカウントでログインしてください。

他のAndroidソフトウェアにセキュリティ上の欠陥があったため、ハッカーはGmailのカレンダーセキュリティトークンを盗聴し、完全なアクセス権を得ることができます。

この記事を読んでhttp://www.techlicious.com/blog/android-security-flaw-could-expose-you-to-data-theft/

関連する問題