@dind

Как сделать безопасный REST API?

Требуется сделать мобильное приложение, в котором будет система кешбека. Приложение будет подключаться к сайту, сделанному на одном из популярных PHP CMS. Переписать API на другом языке накладко. Есть опасение, что злоумышленник найдет урл к API, узнает что он сделан на пхп и найдет способ взломать. Насколько известно, урл к АПИ можно вычислить. Поэтому можно ли сделать так например, написать промежуточный апи (на питоне, гоу), который в свою очередь будет обращаться на другой адрес (на сайт пхп) и взаимодействовать с ним? При этом перенаправление как мне кажется уже нельзя будет узнать.
  • Вопрос задан
  • 407 просмотров
Пригласить эксперта
Ответы на вопрос 5
idegree
@idegree
Senior Workaround Developer
Какая разница на чем написано (PHP/Python/Go)? Написать можно как плохо так и хорошо на всем. Вычислить URL к API вообще не проблема. Сделать перенаправление тоже, но если это тупое перенаправление, чем это спасет? Как вы решите проблему с авторизацией, если у вас будут разные сервисы (один на Go, другой на PHP)? Вы себе больше проблем создадите.
Ответ написан
usdglander
@usdglander
Yipee-ki-yay
Смотрите поменьше видео типа "Как взломать любой сайт на PHP", которое рекламирует курсы по Java. 60% веб-сервисов (не помню где эту цифру видел) написано на PHP и всё нормально. Писать надо головой и руками просто, а не одним местом.
Ответ написан
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Сделайте подписанный url и сильно не беспокойтесь. Просто передавайте вместе с URL некий сессионный ключ, который будете генерировать на основе например MD5.
А еще лучше - сделайте отдельный микросервис для вашей задачи! Можно и на PHP.
Ответ написан
Вы можете погуглить в сторону Web Application Firewall (WAF), помимо банального скрытия финального сервера с API как бонус получите защиту от распространенных атак.
Но это не значит, что можно полностью довериться WAF и не предпринимать никаких шагов на уровне API ;)

PS: в этой схеме крайне желательно, чтобы финальный API-сервер не отвечал на запросы не от WAF, но это совсем другая история.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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