@Alk90
php, mysql, jquery, css, html, api

Как создать секретный ключ для API?

Всем привет! Хочу сделать секретный ключ для того чтобы проверять данные от клиента на сервере.
Решил посомтреть как это делают вконтакте и нашел такой метод: https://vk.com/dev/friends.areFriends
В описании к параметру need_sign есть строчка: "позволяет на сервере убедиться что данные не были подделаны на клиенте."

Правильно ли я понимаю, что md5("{id}_{user_id}_{friends_status}_{application_secret}") является хорошим вариантом защиты, и на сервере я могу быть уверен, что если пришедший ключ совпал при проверке с вновь созданным по тому же правилу, то он не подделан?
  • Вопрос задан
  • 351 просмотр
Пригласить эксперта
Ответы на вопрос 4
mamadaliev
@mamadaliev
Intern Java Developer
Согласен, вариант достаточно надежен, но я бы ещё добавил что нибудь не относящийся к стандартным переменным. Например,
md5("{id}_{user_id}_mytext1_{friends_status}_mytext2_{application_secret}")
Ответ написан
devspec
@devspec
Помогло? Отметь решением
Так делают многие платежные системы - поэтому да, вариант достаточно надежен.
Ответ написан
Комментировать
@ksnk
Смотря для чего он будет использоваться. Если такой ключ будут передаваться по открытым линиям - его могут перехватить и использовать для авторизации.
Ключ должен действовать ограниченное время. Или ограниченное количество попыток авторизации. Нужно просто сгенерировать случайную последовательность и сохранить ее в базе с привязкой к аккаунту. Там же хранить время, в течении которого ключ будет действовать, и все остальное что может понадобится.
Ответ написан
Комментировать
Jeer
@Jeer
уверенный пользователь
Секретный ключ? )
Посмотрите информацию по JWT
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы