Какую политику CORS использовать для приложений iOS и Android?

Я создаю API, который предназначен для использования приложениями iOS/Android. Приложение использует веб-токен JSON для аутентификации пользователей. Я столкнулся с проблемами CORS при попытке поговорить с API из собственного приложения. Поэтому я добавил заголовки CORS для ВСЕХ источников (только для URL-адресов, начинающихся с /api/). Теперь он работает нормально, но мне интересно, не является ли то, что я сделал, потенциальной уязвимостью?

Должен ли я разрешать ВСЕ источники? Если API будет запрашиваться нативными приложениями, можно ли заранее узнать хост Origin?

Я совсем запутался. Заранее спасибо за помощь.


person gkpo    schedule 29.11.2015    source источник


Ответы (2)


Пользователю не нужна защита CORS, если у него есть токен. Токен полностью идентичен пользователю, который входит в систему со своим именем пользователя и паролем каждый и каждый раз, когда вы отправляете токен на сервер. Модель угрозы, от которой защищает CORS, — это вредоносный домен/сайт, отличный от вашего собственного сайта, выполняющий AJAX-запрос к вашему серверу с использованием файлов cookie (включая идентификатор сеанса) для вашего домена.

Если у вредоносного домена или объекта есть токен вашего пользователя, личность вашего пользователя настолько PWN, что на самом деле не имеет значения, какую защиту CORS вы пытаетесь применить. Вредоносный домен имеет эквивалент имени пользователя и пароля вашего пользователя. Они полностью скомпрометированы, пока вы не аннулируете их токен.

Таким образом, не беспокойтесь о том, откуда приходит запрос ( CORS ), когда злоумышленник полностью скомпрометировал учетную запись пользователя. Просто защитите жетон, как если бы это были драгоценности королевы. Отправьте его по SSL и надежно сохраните. Если злоумышленник получит ключи от Форт-Нокса, у вас возникнут проблемы посерьезнее, чем источник запроса.

person Ross Rogers    schedule 29.11.2015

Не бойтесь позволить Cors Origin: * потому что, если вы ограничите доступ к серверу, вы можете поставить свой бизнес в нестабильную ситуацию, поэтому усердно работайте над токенами.

Но в своей манере я исследую сеть и обнаружил, что любое шифрование иногда имеет расшифровку как сторонний инструмент и говорит «вау».

Наконец, сделайте свое собственное шифрование за 20 дней и с каждым днем ​​усложняйте расшифровку.

Окончательный ответ: разберитесь в шифровании и дешифровании, а затем сделайте свои функции такими, какими хотите, чтобы никто не знал.

Не тратьте свое время на SSL или международные алгоритмы HASH, если вам нужна максимальная безопасность. После этого вы можете смешивать шифрование с международными хэш-алгоритмами по своему усмотрению.

Начните с простого кодирования символов, затем обновляйте и обновляйте больше, один раз, когда вы это сделали, вы можете использовать его в каждом приложении, которое вы делаете.

Надеюсь быть полезным.

person Behnam Alavi    schedule 13.11.2019