Какие угрозы безопасности создает access_token для Facebook Graph API?

#php #javascript #ajax #facebook #facebook-graph-api

#php #javascript #ajax #Facebook #facebook-graph-api

Вопрос:

Я создал пользовательский ajax-скрипт для анализа JSON, возвращаемого из facebook graph API feed.

Я смирился с тем фактом, что токен доступа истекает, поэтому, чтобы получить другой, я могу сделать запрос на

 https://graph.facebook.com/oauth/access_token?grant_type=client_credentialsamp;client_id=APP_IDamp;client_secret=APP_SECURITY 
  

где APP_ID — это идентификатор приложения, а APP_SECURITY — значения безопасности приложения, зарегистрированные в моей учетной записи Facebook app development.

Однако я беспокоюсь, потому что я делаю эти запросы через ajax, поэтому любой, у кого есть базовые знания chrome / firebug, может получить доступ к моим переменным app_id, app_security и access_token (отныне известные как «Переменные»), хранящиеся в моем файле javascript.

Я не уверен, какие пользователи могут предоставлять такую информацию?

Предоставляет ли токен доступа только для чтения JSON-вывода моей страницы Facebook? Или эта информация может быть использована для более вредоносных целей?

Теперь: прежде чем кто-либо ответит, что я должен использовать php для получения JSON и синтаксического анализа и т.д… Я не могу, потому что требование заказчика — использовать ajax для очевидных асинхронных преимуществ.

Если переменные не представляют угрозы для моей учетной записи Facebook и могут использоваться только для чтения, тогда я продолжу свое программирование!

Однако, если они должны быть защищены… Как я могу безопасно передать переменные в javascript, чтобы сохранить переменную скрытой?

PS. У меня уже есть предварительно написанные php-скрипты для получения переменных. Сразу после метода обеспечения их безопасности при переходе на javascript (при необходимости)

Спасибо

Алекс

Комментарии:

1. НЕ делайте этого. Они не должны быть общедоступными. Даже документы говорят вам об этом. С вашим идентификатором приложения и секретом я мог бы притвориться вашим приложением и делать все, что захочу, с полученными разрешениями, и вы бы несли ответственность. В принципе, эти переменные никогда не должны отправляться клиенту.

2. Спасибо, я просмотрел документацию, но ничего не смог найти. Итак, если срок действия моего токена доступа истекает, как мне заставить мой php-скрипт сообщить моему javascript, что такое новый ключ доступа?

3. О, я такой новичок… Все в порядке, я справился. Спасибо:)

4. Я бы предложил использовать прокси-скрипт, который вы можете вызывать через ajax, который сам выполняет запросы facebook. Таким образом, вы можете контролировать, кто что запрашивает, и это означает, что вы можете сохранить все учетные данные безопасности только на стороне сервера.

Ответ №1:

Как указано, никогда не отображайте APP_ID и APP_SECRET публично.

читать это. Вы узнаете способ автоматического поиска вашего токена доступа с помощью php.

Используя этот php-файл, выполните к нему вызов ajax, и он вернет ваш новый токен доступа.