Извините, если об этом уже спрашивали и отвечали; Я осмотрел кучу, но не нашел точно, что я прошу.
-
-
Предположим, что мое веб-приложение в http://example.com/ использует частный и недокументированный веб-API на http://api.example.com/ для получения данных, например через XHR или JSONP.
-
Также предположим, что это веб-приложение анонимно — он не требует входа пользователя в систему.
-
Поскольку существует связь между клиентом и сервером, любой может открыть Fiddler и т.д., чтобы увидеть точный запрос и ответ, не говоря уже о проверке JS-кода на стороне клиента.
В таком случае, как вы можете запретить кому-либо использовать ваш API в клиентском приложении не в Интернете? Например. приложение для iPhone или на стороне сервера.
Насколько я понимаю, пункт №2 удаляет вариант чего-то вроде OAuth, а точка № 3 удаляет вариант, например. API или даже SSL.
Я думал о таких вещах, как маркеры на основе времени или секретные соли, которые вводятся на страницу при первой загрузке, но приложение для iPhone может просто просто тайно загружать вашу веб-страницу, прежде чем делать запросы API.
Так что есть какой-то способ, кроме простой обфускации — безопасность через неясность?
-
Если все это слишком абстрактно, вот простой пример:
Google.com извлекает свои автоматически заполненные данные через некоторый API, который является частным и недокументированным — но открываются в Интернете. Что мешает мне использовать его в своем iPhone-приложении?