предотвратить нежелательный доступ к серверной системе с помощью входа в Facebook - PullRequest
1 голос
/ 04 августа 2011

Я пишу приложение для iPhone, которое использует логин на Facebook.Когда пользователь регистрируется в токене доступа fb, адрес электронной почты отправляется во внутреннюю базу данных через веб-службу.Теперь проблема в том, как я узнаю это, когда токен доступа будет изменен Facebook.Кто-то мог просто отправить аналогичные данные в мою БД через веб-службу, выдавая себя за пользователя, и изменить маркер доступа в моей БД.Мне нужно как-то аутентифицировать вызов веб-службы, поступающий с мобильного устройства.

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

Спасибо.

1 Ответ

0 голосов
/ 04 августа 2011

Для этого не существует простого или действительно герметичного решения.

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

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

Вы должны хотя бы использовать шифрование ша, md5 начинает ослабевать в наши дни.

Exampel для очень простой генерации токенов, не используйте это в своем коде;

String salt = "twsg23s¤#"; //a random generated string (must be the same on the server and client
String token = sha1(sha1(facebookid + salt) + salt); //this will be your token

Затем вы генерируете тот же токен на стороне сервера и сравниваете токен клиента с токеном сервера.

Я должен подчеркнуть: Если ваша соль обнаружена и / или ваш алгоритм слаб, у вас будет огромная дыра в безопасности в вашей системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...