Как защитить api от доступа неофициальных клиентов?

Рейтинг: 1Ответов: 1Опубликовано: 20.04.2015

Есть приложение на ios (objective-c) и серверная часть на laravel 5 (php). Хочу чтобы доступ к api был только у официального клиента. Насколько я понял нужно подписывать запрос на клиенте и проверять его на сервере. Буду благодарен за любые ссылки-туториалы по этой теме.

Ответы

▲ 2

Есть одна фундаментальная проблема, вся подпись будет на клиенте, а клиент всегда можно реверс-инженерить, так что сделать доступ только официальному клиенту не получится. Однако, что получится, так это усложнить процесс получения доступа.

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

Что-бы усложнить получение публичного ключа, можно попытаться применить обфускацию, например с помощью, cocoapods-keys или подобных инструметнов.

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