это админ на страницах фейсбука - PullRequest
0 голосов
/ 03 сентября 2011

Я огляделся и не смог найти ничего, чтобы сделать это (ну, это не было очевидным или полуочевидным)

Скажем, у меня есть приложение на Facebook, которое предлагает услугу, за которую люди будут платить во время использования. Обычный пользователь может зайти и «подписаться» на него, в то время как администратор этих страниц может выполнить действие, которое будет стоить им денег (заработать мне деньги).

Я не хочу попыток взлома или чего-либо, что могло бы повредить нашему продукту. Итак, как я могу убедиться, что кто-то является администратором с помощью PHP SDK.

В настоящее время мы храним $ _POST ["signature_request»] в данных $ _SESSION и работаем с этим. Либо $ _POST, либо $ _SESSION не безопасны на 100% (firesheep).

Есть ли способ проверить это? График API?

1 Ответ

0 голосов
/ 04 сентября 2011

Хорошо, обо всем по порядку. Чтобы получить signed_request и проверить, является ли пользователь администратором, вы должны использовать что-то вроде:

$signed_request = $facebook->getSignedRequest();
if ($signed_request['page']) { // Loaded in a page tab
    if ($signed_request['page']['admin']) {
        // Current user is admin
    } else {
        // Normal user
    }
} else { // Canvas view

}

Теперь я не уверен, что вы подразумеваете под:

В настоящее время мы храним $ _POST ["signature_request"] в Данные $ _SESSION и работа с ними.

Поскольку, если вы используете PHP-SDK, вам не нужно беспокоиться о сохранении signed_request в сеансе, поскольку SDK будет обрабатывать его для вас.

Теперь для последней части:

Либо $ _POST, либо $ _SESSION не являются безопасными 100% (firesheep).

Это не правда, signed_request - это бесполезно без секретного ключа вашего приложения для его декодирования. Таким образом, даже если кто-то сможет получить его, это не скомпрометирует ваше приложение. Подробнее о signed_request s здесь .

...