Каковы потенциальные проблемы с представлением секрета API Facebook?

Я пишу немного веб-утилиты, которая отправляет обновления статуса на Twitter и/или Facebook. Это связало создающие 'приложения' и с теми сервисами для получения ключей API и 'секретов'.

Мой вопрос состоит в том, как защищенный я действительно должен сохранить те секреты - для этого для работы вообще, Вам, кажется, нужен секрет для взаимодействия с частью аутентификации сервиса предоставить доступ к приложениям учетной записи и/или дать ему разрешение для регистрации обновлений от Вашего имени. В документации Facebook говорится для защиты секрета, но по крайней мере еще одна утилита Facebook распределяет ключ API и секрет в источнике.

Важно отметить: это не Ваш стандартный Facebook 'приложение', которое работает в контексте Facebook, и при этом это не стандартный "рабочий стол" - стиль скомпилированное приложение - это - веб-приложение, предназначенное, чтобы быть запущенным на Вашем собственном веб-сервере. Аудитория для этого является, вероятно, малочисленной и несколько более сложной, чем среднее число - так, одна техническая альтернатива должна была бы потребовать, чтобы люди получили свой собственный ключ API и секрет для использования приложения. Это походит на большую работу, однако, и довольно большой барьер для доступа кому-либо использующему это.

Кто-либо знает или имеет понимание на том, какая проблема я впускаю меня для того, если я поместил и секреты и ключи API в конфигурации для моего приложения и проверяю его в GitHub для всего мира для наблюдения?

13
задан genehack 11 February 2010 в 04:32
поделиться

3 ответа

Это всегда будет работать, потому что он не содержит альфа-цвета (который не поддерживается свойством BackColor):

Color temp = Color.FromArgb(0xFF00FF);
Color result = Color.FromArgb(temp.R, temp.G, temp.B);
-121-2370365-

Обычно компилятор делает int хорошим размером для установки в один из регистров общего назначения процессора. Это обычно приводит к быстрому доступу.

Конечно, нет никакой гарантии. Компилятор может делать много вещей, в том числе, я думаю, продвигать некоторые из вашего кода, который использует char к какому-то большему типу. Так что разница может даже не иметь значения.

Действительно, для ответа, который верно для вашего компилятора, вы должны посмотреть на сборку, которую он выводит.

-121--2889016-

Любой пользователь, имеющий доступ к секретному ключу, имеет полный контроль над приложением. На этой странице показаны все параметры администрирования, которые они могут изменить с помощью вызова API admin.setAppProperties . Это может включать в себя перевод приложения в режим разработчика (чтобы никто другой не мог использовать его), изменение URL обратного вызова (который нарушит его) или все виды других зол.

Я не уверен, что полностью понимаю, что вы пытаетесь сделать, но я думаю, что если вы посмотрите документацию для секретов сеанса , то вы можете найти решение, которое не будет включать встраивание секретного ключа приложения, но позволит пользователю взаимодействовать с API. Секреты сеанса используются приложением Facebook Connect и позволяют выполнять вызовы API без секрета приложения. Вызовы API , которые могут быть выполнены с секретом сеанса , имеют тенденцию быть ограничены пользователем, взаимодействующим только с их собственными данными. Обновление статуса и предоставление разрешений, безусловно, могут быть связаны с комбинацией секретов сеанса, Connect и XFBML .

И как уже ответил Павел: разглашение секрета вашей заявки противоречит условиям использования Facebook.

8
ответ дан 2 December 2019 в 00:58
поделиться

Вы нарушите свое соглашение, которое дает вам лицензию на использование API facebook. Частью этого соглашения является то, что вы держите свой ключ в секрете. Если вы этого не сделаете, они отключат ваш доступ до тех пор, пока вы не согласитесь соблюдать правила.

Политика III.7 очень ясна:

Вы не должны передавать свой секретный ключ другой стороне, если только эта сторона не является агентом, действующим от вашего имени в качестве оператора вашего приложения, но вы никогда не должны передавать свой секретный ключ. в рекламную сеть. Вы несете ответственность за все действия, которые происходят под идентификаторами вашей учетной записи.

http://developers.facebook.com/policy/

Заставьте каждого пользователя получить ключ API или пересмотрите свою архитектуру. Вы не хотите, чтобы facebook прекращал ваш доступ, а подписка на ключ API, честно говоря, не ТАКОЕ работа.

4
ответ дан 2 December 2019 в 00:58
поделиться

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

Создать новое приложение несложно. Просто зайдите на http://www.facebook.com/developers/createapp.php

0
ответ дан 2 December 2019 в 00:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: