2011-07-23 26 views
1

Google AdSenseを使用して収益を上げるFacebook Connectアプリがあります。 FacebookのユーザーID番号やアクセストークン(ユーザーIDを含む)などのFacebookユーザー情報が漏れていないことを確認したいと思います。Facebook ConnectアプリからAdSenseにユーザー情報が漏れるのを防ぐ方法

AdSenseは完全に合法と接続アプリケーションのためのFacebookのポリシー内にあります。私は、Googleがユーザーを特定する情報を見ることができないようにする必要があります。

私が述べて、私は自分のアプリケーションを設計したときに、これらの要件をよく知っていた、と私はそれが釘付けと思っていたが、その後、私はFacebookのから有名な自動化された警告の電子メールのいずれかを受けた:「我々の自動化システムがあることを検出した

を誤って認証データを第三者に渡すことを許可している可能性があります。それはまた述べ

を「我々が検討してきたすべてのケースでは、この情報はユーザーのブラウザでHTTPリファラーヘッダーを経由して渡されます。」

繰り返しますが、私はすでにそれがユーザ認証の後に戻ってあなたのアプリにリダイレクトする際にFacebookがクエリ文字列にアクセストークンを置くときに発生このリークベクタ、精通していました。私はすでにサーバーサイドのOAuth 2.0リダイレクションによって "コード"を取得し、アクセストークンと交換することでこれを処理する設計を行っています。 https://developers.facebook.com/docs/authentication/

私のアプリでは、ビューを持たない別のASP.NET MVCコントローラでトークン交換を行います。そのため、AdSenseやその他の機能はありませんサードパーティリソースが含まれています。だから、私のヘッダーリフェラルのフィールドの内容とクエリーストリングのすべてがきれいで、ユーザーデータを含んでいないことは確かです。

私はFacebookからのメール通知を受け取ったが、私のアプリとAdSenseのお金の蛇口をオフにしたくないということを考えれば、私はデータが漏れているような別の場所があることを妄想している。また、電子メールには、私のアプリが情報を漏らしている可能性があると言われています(なぜ、彼らは自分が見たものを教えてくれないのですが、少なくとも漏れている可能性はありません。すべてのインスタンスはreferer/querystringに起因すると私は確信しています(Fiddlerのトレースを行っている)私のアプリはきれいです。

情報漏洩の可能性は1つしかありませんが、実際のリスクか、AdSense(とGoogleアナリティクス)の正確な内容がわからないユーザーの認証が必要なページのアプリのコンテンツ

私は、隠しフォームフィールドにアクセストークンを置くビュー(ページ)を持っています。ページが最初に提供されたとき(ユーザーが認証された後)、その後Javascriptを介して(Facebook JS SDKを使用して)更新されるので、ユーザーがフォームをサーバーにポストバックすると、更新されたaccess_tokenそれが変更された場合。 Javascript SDKを使用して、場合によってはoffline_access拡張アクセス許可を含むそのページの追加のアクセス許可を求めるプロンプトにアクセストークンが変わる可能性があります。 offline_accessを取得すると、期限切れではない新しいaccess_tokenが生成されます。

これは、それを見るために認証されることをユーザーに要求するページ上にあるので、私は、ページの内容を見ることができないのAdSense考え出し。ユーザーが認証されていない場合でも、「ログインする」というプロンプトが追加されているため、Adsenseはページをインデックスに登録して提供することができるので、同じテキストを使用して一般的な方法(ユーザー情報なし)関連するコンテンツ広告。

私はFacebookがちょうど昨日、新しいOAuthの2を立ち上げたという事実を認識しています。0のJavascript SDKの機能ですが、すぐに採用することはできません.Phase C#SDKでは動作しません。サーバー側で使用します。それでも、隠しフォームフィールドにアクセストークンを置くことに問題がある場合でも、その問題は依然として存在します。

古典的なFacebookのファッションでは、問題を解決するのに48時間を要しますが、開発者サポートのWebフォームからの質問は、「1週間以内に特定の問題に対応するために最善を尽くす」との回答になります。 "

「Google AdSenseはユーザー認証を必要とするページのページの内容を表示できますか?」という簡単な考え方があります。または、AdSenseのjavascriptファイルが読み込まれたヘッダーリフェラルフィールドのみが表示されます。

答えて

0

彼らはマニュアルレビュー私のサイトでは、実際にユーザー情報を漏らしていないと言いました。グーグルはFacebookの自動検出システムを回ってくれてありがとう!

1

あまりにも彼らはあなたのコードの詳細を知らなくても検出されている、まさに言うハード - しかし、私はかもしれリーク情報を行い、実際にあることを推測します。彼らは、あなたが知っている特定のパターンを特定し、そのパターンがあなたのアプリに存在することを発見したでしょう

なぜ、squidのようなプロキシサーバーをセットアップして、すべてのhttpアクセスのインスタンス。次に、すべてのHTTP要求とヘッダーのsquidログを調べて、漏洩の可能性があることを示すことができます。

私はあなたがすでにすべてのJavaScriptが上で実行されているほか

可能なマシンを持っていない場合ので、アマゾンのマイクロインスタンスは、あなたがこのために必要なものであってもよいし、イカをインストールするための独立したマシンを選ぶべきだと思いますページにはDOMとすべてのグローバルJavaScript変数のすべてが表示されますので、あなた/ Facebookが情報漏洩を心配している場合は、すべてのuidをクロージャ内に格納したり、一般的な細分化ルールとして、あなたはiframeでラップされていないサードパーティのJavaScriptコードをあなたのページで実行することを決して許さないでください。

+0

これをチェックするもう1つの方法は、チャールズまたはフィドラー、または他のHTTPアナライザーです。設定が簡単で、HTTP GETパラメーターとして渡されたuidまたはアクセストークンを持つページに、リファラーヘッダにその情報が渡されたパーティのコンテンツ – Igy

+0

@Igyと合意 - 最終的に、ヘッダーを含む実際のHTTPトラフィックを検査する必要があります。 – Soren

+0

私は、特にGoogleへのトラフィックに重点を置いて、私のアプリで広範囲にFiddlerを使用しました。ヘッダーとフォームフィールドの内容はきれいです。私は、AdSense jsがDOMをトラバースし、私の隠れたフォームフィールドからアクセストークンを引き出す可能性があることをより心配しています。 AdSense *が引き出すことができるものと引き出すことのできる観点から考えるべきかどうかを考えてみてください。 –

関連する問題