http://developers.facebook.com/docs/ApplicationSecurity/

私たちは、Facebook Platformアプリケーションの運用をより安全にする機能を提供しています。これらの全機能はdeveloper applicationから設定できます。

Sandbox Mode

アプリケーションをテストする際には、ぜひSandbox Modeを利用してください。それにより、developer appでアプリケーションを閲覧できるように役割を与えられたユーザでない限り、あなたのアプリケーションを閲覧できなくなります。アプリケーションがSandbox Modeに設定されている場合、そのアプリケーションを閲覧できないユーザの代理としてAPIを利用することはできません。つまり、アプリケーションのテストユーザの写真を取得することは可能ですが、その友達の写真を持ってくることはできません。

Application Roles

ユーザに対してAdministrator, Developer, Tester, Insights userの4つの役割のうち一つを指定できます。それぞれの役割は、役割を与えられるユーザに対して異なるパーミッションを付与します。必要となる権限のみ与えるようお勧めします。それにより、アプリケーションのセキュリティを向上させることが可能となり、ユーザアカウントがセキュリティ侵害された場合の被害を抑えることができます。

Administrator

Administratorは、アプリケーションに対する全アクセス権限を持ちます。アプリケーションの全設定を変更できますし、シークレットキーを変更したり、アプリケーションを削除することさえ可能です。また、他のユーザをアプリケーションに追加/削除したり権限を変えることができます。既にアプリケーションに追加されている全developerはこれらの権限を持ちますので、新しいモデルへの移行時にはAdministrator権限を持つようになります。アプリケーションのadministratorは、信頼できてなおかつ全権限を必要とするユーザのみadministratorに追加すべきです。

Developer

Developerはアプリケーションへのアクセス権限と、アプリケーションを運用しテストするのに必要な技術的な設定を変更する権限を持ちます。Developerは、developer appもしくはadmin.setAppProperties() APIでアクセスできる全ての技術的な設定を変更できます。また、アプリケーションのinsightsを閲覧することもできますが、administratorと違い、以下の権限は持っていません。

  • アプリケーションのシークレットキーを変える
  • アプリケーションの削除
  • 他ユーザをdeveloper, tester, administratorとして追加/削除する

Tester

Testerはsandbox modeのアプリケーションのテストのみ可能です。アプリケーションの設定を変えたり、他ユーザにアプリケーションへのアクセス権限を与えたりInsightsを閲覧することはできません。この役割は最も無害なものなので、sandbox modeのアプリケーションをテストする必要のある全ユーザに指定するべきです。sandbox modeを解くと全ユーザがアプリケーションにテストユーザと同じようにアクセスできるようになります。

Insights User

この権限を持ったユーザはInsightsにアクセスする権限のみ持ちます。アプリケーションがsandbox modeの場合はアプリケーションにアクセスすることはできず、アプリケーション設定を変更することはできません。


accessroles


Application settings security

なりすましユーザによってアプリケーションを奪われるというケースがあり、これを発見して修正するまで大きな打撃を与えます。

Whitelist of IP addresses for updating settings.

アプリケーションの設定を変える際に利用されるIPアドレスをホワイトリストに追加することができます。会社のIPアドレスを使っている開発者のみ設定変更ができるため、セキュリティ向上に役立ちます。

このホワイトリストはdeveloper applicationのAdvancedタブから設定できます。カンマ区切りのIPアドレス、もしくはIPアドレスのレンジを入力します。たとえば1.2.3.4, 1.2.3.5-67のようにです。

一度指定すると、それ以外のIPからのアプリケーション設定変更はできなくなります。ホワイトリストは、UIだけでなくAPIでの変更リクエストにも適用されます。

Update Notification

万が一乗っ取りが起きた場合に、それを一刻も早く発見し修復するための通知機能があります。Developer appのUIもしくはAPIから設定変更された場合に、関係者に通知されます。この通知には、誰によってどのような変更が行われたかが含まれます。

アプリケーション設定のAdvancedタブから、通知を送るメールアドレスを追加できます。


applicationsecurity


Server whitelist

API呼び出しを行うサーバのIPアドレスを制限することができます。developer applicationのDeveloper SettingにあるAdvancedセクションから追加してください。

カンマ区切りのIPアドレス、もしくはIPアドレスのレンジを入力します。たとえば1.2.3.4, 1.2.3.5-67のようにです。