В настоящее время у нас есть API, который защищен криптографией с открытым и закрытым ключом. Все запросы к API от данного домена / IP должны проверяться с парой секретного и открытого ключей. Это очень хорошо работает, когда API вызывается с внешнего сайта или статического IP.
Однако теперь мы хотим использовать этот API в приложении Chrome, которое, очевидно, будет работать в браузере пользователя. Запросы будут выполняться со стороны клиента с использованием AJAX, и, конечно, они не будут поступать с одного IP-адреса, а домен не будет существовать.
Мы хотели бы предотвратить неконтролируемый доступ к конечной точке, в то же время позволяя совершать действительные звонки на нее из приложения Chrome. Пока что предлагается включить флаг, который указывает, был ли сделан вызов из приложения, но, конечно, кто-то может проверить заголовки HTTP и опубликовать данные и подделать его, чтобы включить флаг.
Есть ли у кого-нибудь какие-либо предложения о том, как мы можем заблокировать API, чтобы гарантировать, что вызовы из приложения Chrome разрешены, но нет вызовов из других доменов или IP-адресов, которые не используют ключ?
Мы также намерены в конечном итоге использовать конечную точку в приложении Adobe AIR, поэтому было бы здорово найти надежное решение! Если возможно, мы бы хотели избежать использования промежуточного или сквозного шлюза.
Задача ещё не решена.
Других решений пока нет …