Задать вопрос
archakov06
@archakov06
Frontend-разработчик (ReactJS)

Как защитит самописный API?

Доброго времени суток!

Занимаюсь реализацией API для своих приложений на Android / iOS. В API есть возможность покупки товаров и я уверен, что найдутся "умники" которые отловят запросы передаваемые. А дальше могут быть плохие последствия.

Были несколько вариантов защиты:
1. client_id & client_secret по типу oAuth 2.0 . Но этот принцип самый банальный. Я просто передаю открыто доступ злоумышленнику и он спокойно может используя client_id и client_secret использовать API.

2. Была задумка реализации, где при авторизации пользователя в приложении отправлялся запрос на сервер. Далее выдавался ключ который я генерирую и храню в БД. И при важных запросах (покупка, редактирование профиля) используя этот ключ, приложение криптовало JSON параметры в AES256 используя этот ключ. И отправлял данные на сервер. Но ведь можно изначально отравив ключ, узнать что хранится в отправляемом запросе.

В общем, вариантов куча. Но очень слабые! Посоветуйте что-нибудь стоящее. Спасибо заранее.
  • Вопрос задан
  • 541 просмотр
Подписаться 1 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 4
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
SSL + SSL Pinning.

по поводу оплаты - сервер как бы должен валидировать отдельно транзакции, а не просто доверять всем подряд.
Ответ написан
Комментировать
@rsi
software engineer
А как по вашему авторизация в веб приложениях работает? Ее точно так же можно отловить и скомпрометировать клиента.

1) Используйте https
2) Добавляйте к каждому запросу уникальную подпись

Можно подмешивать в подпись уникальные данные, id девайса, какие то параметры из апи, текущее время, и шифровать это каким нибудь популярным способом.
Ответ написан
by25
@by25
Веб-разработчик
Посмотри в сторону JWT (@Fesor как-то советовал раньше ;)

https://jwt.io/ Много либ как под мобильные платформы, так и для PHP
Если кратко понять суть, можно бегло посмотреть это - habrahabr.ru/post/243427
Ответ написан
VladimirAndreev
@VladimirAndreev
php web dev
https.
а оплаты - наверняка маркет и стор предлагают хорошие способы
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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