Контекст
Как я могу запретить другим использовать мои веб-API / службы и ограничить их только моим приложением?
Вы упоминаете web
здесь и в теги для этого вопроса, но не ясно, что вы имеете в виду веб-приложение или мобильное приложение.
Пользователям моего приложения не нужно регистрироваться или делать что-то подобное, и они могут использовать приложение, как только они установят его на свой телефон.
Сформируйте это Я предполагаю, что ваше приложение является мобильным приложением, из-за этого предложения: они могут использовать приложение как как только они установят его на свой телефон , и предполагая, что когда вы ссылаетесь на my web apis / services , вы действительно имеете в виду REST API и сторонние сервисы, такие как Firebase, о которых вы также упоминаете в вопросе.
Разница между КТО и ЧТО имеет доступ к серверу API
Как я могу запретить другим использовать мои веб-API / службы и ограничить их только моим приложением?
По другим вы, кажется, имеете в виду другое человеческое существо, who в запросе, но вы можете вместо этого указать , какое программное обеспечение / скрипт / бот пытается использовать мои веб-API / сервисы.
Знание разницы между тем, что делает запрос к вашему серверу API, и знанием от имени того, кто делает запрос, очень важно для понимания того, какое состояние безопасности и
Я написал серию статей об API и безопасности мобильных устройств, а также в статье Почему вашему мобильному приложению нужен ключ API? вы Я go более подробно о разнице между who и what обращается к вашему серверу API, но я извлечу здесь основные моменты:
1047 * what - это то, что делает запрос к серверу API. Действительно ли это подлинный экземпляр вашего мобильного приложения, или это бот, автоматизированный скрипт или злоумышленник, вручную копающийся в вашем сервере API с помощью такого инструмента, как Postman?
The who является пользователем мобильного приложения, которое мы можем аутентифицировать, авторизовать и идентифицировать несколькими способами, например, используя потоки OpenID Connect или OAUTH2.
Вы можете подумать о who как пользователь ваш сервер API сможет аутентифицировать и авторизовать доступ к данным и думать о what как о программном обеспечении, выполняющем этот запрос от имени пользователя.
In в вашем случае использования who не имеет значения, потому что у вас нет аутентификации пользователя в вашем мобильном приложении, поэтому вам нужно найти способ определить то, что выполняет запрос. Итак, вы хотите заблокировать свой сервер API для своего мобильного приложения, и вы столкнулись с очень сложной проблемой, которую необходимо решить.
Блокировка API / УСЛУГ
Для сервера API
Как я могу запретить другим использовать мои веб-API / сервисы и ограничить их только моим приложением?
Чтобы сервер API имел высокую степень уверенности, что то, что делает запрос, действительно является вашим подлинным мобильным приложением, а не ботом / скриптом или измененной версией вашего мобильного приложения, концепция аттестации мобильных приложений может быть использована / реализована, и я предлагаю вам прочитать мой ответ на вопрос Как защитить API REST для мобильного приложения? в разделе для Возможное лучшее решение , чтобы понять эту концепцию.
ПРИМЕЧАНИЕ: На тот случай, если у вас действительно есть веб-приложение, а не мобильное приложение, я рекомендую вам вместо этого прочитать этот другой ответ Я дал на вопрос Как защитить собственный сервер nd API, который обслуживает только мой интерфейс? и прочтите раздел Возможные решения .
Для Firebase
Чтобы дать более конкретный пример , допустим, я использую службу базы данных Firebase Realtime. Как я могу запретить другим использовать эту услугу от моего имени?
Я не эксперт в Firebase, поэтому я укажу вам на этот ответ на вопрос Блокировка доступа к базе данных Firebase для определенных c приложений .
Мне кажется, что безопасность Firebase реализована вокруг правил безопасности и аутентификации пользователя :
Обычным первым шагом в защите вашего приложения является идентификация вашего пользователей. Этот процесс называется аутентификацией. Вы можете использовать Firebase Authentication, чтобы пользователи могли входить в ваше приложение.
Но вы не определяете , кто использует ваше мобильное приложение, поэтому их первые шаги не применимы к вашему варианту использования, но кажется, что они поддерживают анонимную аутентификацию пользователя :
Вы можете использовать аутентификацию Firebase для создания и использования временных анонимных учетных записей для аутентификации с помощью Firebase. Эти временные анонимные учетные записи могут использоваться, чтобы позволить пользователям, которые еще не зарегистрировались в вашем приложении, работать с данными, защищенными правилами безопасности.
Так что это может быть вашим лучшим шансом go с с точки зрения блокировки вашего мобильного приложения с помощью Firebase.
В двух словах похоже, что Firebase не имеет встроенных функций для определения того, что выполняет запрос, потому что их фокус кажется Чтобы узнать больше о , который выполняет запрос, но поскольку я не являюсь экспертом в этом вопросе, я советую вам отнестись к этому заявлению с осторожностью и провести собственное исследование.
При применении правил безопасности вы можете принять во внимание страницу устранения незащищенности и использовать Firebase Simulator для проверки различных правил.
Хотите ли вы go дополнительную милю ?
В любом ответе на секретный вопрос я всегда хотел бы сослаться на отличную работу фонда OW ASP.
Для мобильных приложений
OW ASP Mobile Security Project - 10 основных рисков
OW ASP Mobile Security Project - это централизованный ресурс, предназначенный для предоставления разработчикам и группам безопасности ресурсов, необходимых для создания и поддерживать безопасные мобильные приложения. В рамках проекта наша цель состоит в том, чтобы классифицировать риски безопасности мобильных устройств и обеспечить средства управления разработкой для снижения их воздействия или вероятности использования.
OW ASP - Руководство по тестированию мобильной безопасности :
Руководство по тестированию мобильной безопасности (MSTG) - это подробное руководство по разработке, тестированию и обратному проектированию безопасности мобильных приложений.
Для APIS
OW ASP Топ 10 по безопасности API
Проект обеспечения безопасности API OW ASP стремится предоставить ценность разработчикам программного обеспечения и специалистам по оценке безопасности, подчеркивая потенциальные риски небезопасных API-интерфейсов и иллюстрируя, как можно уменьшить эти риски. Чтобы способствовать достижению этой цели, OW ASP API Security Project создаст и будет поддерживать документ «10 основных рисков безопасности API», а также портал документации для передовых методов создания или оценки API.