Minggu, 04 Maret 2012

Application Security


Application Security

We provide a set of features that aim to make Facebook Platform application management more secure. All these features are available in the application settings in the Developer App.

Sandbox Mode

When testing Your apps, place them into Sandbox Mode. This hides Your app entirely from all users who You have not authorized in the developer app to see the app, for the roles described below. Please note that when Your app is in Sandbox Mode, You cannot call any API calls on behalf of users who cannot see Your app.

Application Roles

You can You can add a user to an app with one of four different roles: Administrator, Developer, Tester or Insights user. Each role provides a different set of permissions to the user. We recommend that You only give as much access to a user, as they need. This provides greater security for Your app and opens it up to less harm in the situation that the user's account is compromised.


Administrators have complete access to an app. They can change all app settings, reset the app secret, delete the app, and view Credits in Insights. Administrators can also add or remove other users to the app and change their permissions. All ‘developers’ currently added to an app have these permissions so they will get the Administrator permissions as we move to the new model. Administrators of apps should only add other users as administrators if they are fully trusted and must have full control of the app.


Developers have access to the app and all its technical settings that are needed to run, edit and test the app. Developers can modify all technical settings for an app most of which are accessible through the current developer app or admin.setAppProperties() API. They can also see insights for the app. Unlike Administrators however, they cannot:
  • Reset app secret key
  • Delete an app
  • Add or remove other users as developers, testers or administrators


Testers can only test the app in sandbox mode. They cannot edit any app settings, give other users access to the app or access insights for the app. The Tester role is the most harmless and hence should be used for all users who need to test the app in sandbox mode. In live mode all users will have test access to the app. Note that a user does not have to be verified to be added as a tester to an app.

Insights User

Users with Insights User role can only access Insights for that app. They cannot access the app in sandbox mode and do not have access to any developer settings.
Developer app security

Application settings security

We often hear of cases where an app is taken over by an impostor who comes in and changes the app settings, causing much pain to users and developers until this is discovered and fixed.

Whitelist of IP addresses for updating settings.

We allow You to specify a whitelist of IP addresses that must be used to update the app settings. This helps prevent from attacks by ensuring that only developers using the company IP addresses can update the settings.
This whitelist can be set in the Advanced tab of Your app settings in the Developer App. You can specify a comma-separated list of IP addresses or a range of IP addresses. For example,
Once specified, any app update request coming from a non-whitelisted IP address is rejected. This whitelist applies to updates made using API as well as UI.

Update Notification

In the event that such a takeover does take place, we have built a notification system to expedite discovery and recovery from such takeovers. This notifies relevant individuals when any app settings are changed using the Developer app UI or the associated API method. The notification contains information about what change was made and by whom.
An app can register an email address to which these notifications should be sent in the Advanced tab of app settings.
Developer app security

Server whitelist

We also enable You to restrict Your API calls to come from a set of white-listed servers. You can set this whitelist by going to the advanced section of Your Developer settings in the Developer App and set the 'Server whitelist' field.
You can enter a comma separated list of ip addresses or ranges. For example,

0 komentar:

Posting Komentar