Заголовки OPTIONS отключены на веб-сервере (.NET Web API и Angular) - PullRequest
0 голосов
/ 13 ноября 2018

Наша компания поддерживает соответствие PCI (наряду с некоторыми другими).В рамках нашего последнего аудита безопасности наша инфраструктурная команда и аудиторы определили, что заголовки OPTIONS должны быть полностью отключены, поскольку это создает угрозу безопасности.

Мы используем веб-API .NET (на нескольких поддоменах) с Angular6/7 сайтов.Теперь, когда заголовки OPTIONS отключены, предварительные вызовы из Angular отклоняются, и наши приложения отказывают при первом вызове API в другой поддомен (например, Authentication, которая является одной из наших первых функций и работает на auth.mycompany.com с нашим приложением наapp.mycompany.com).

Я немного прочитал (и был бы рад, если бы кто-то пометил это как дубликат, если это приведет к решению :)), однако я не былв состоянии найти любые решения, которые будут работать.В большинстве статей содержится белый список допустимых вызовов OPTIONS (, почему запросы HTTP Options небезопасны и https://security.stackexchange.com/questions/138567/why-should-the-options-method-not-be-allowed-on-an-http-server - два примера) или настройка прокси на том же поддомене ( Предварительная проверка запросов CORS с помощьюБазовая аутентификация в Angular 2 ).

У меня вопрос, есть ли способ настроить заголовок OPTIONS, который позволит нам проходить проверку безопасности и разрешать наши вызовы CORS из Angular?

Заранее спасибо за вашу помощь!

1 Ответ

0 голосов
/ 14 ноября 2018

Наша компания поддерживает соответствие PCI (наряду с некоторыми другими). В рамках нашего последнего аудита безопасности наша инфраструктурная команда и аудиторы определили, что заголовки OPTIONS должны быть полностью отключены, поскольку это создает угрозу безопасности.

Я согласен, что широкий блок всех ОПЦИЙ во всех доменах является допустимым значением безопасности по умолчанию, но они должны разрешать некоторые запросы ОПЦИИ на правильные серверы, поскольку это является частью спецификации HTTP.

Некоторые группы безопасности блокируют все запросы POST как стандартную практику, и вам необходимо запросить, какие запросы POST разрешены в сети.

Мы не можем сказать вам, если это хорошая политика или нет.

У меня вопрос: есть ли способ настроить заголовок OPTIONS, который позволит нам проходить сканирование безопасности и разрешать вызовы CORS из Angular?

Это стандартная проверка безопасности, выполняемая веб-браузерами при запросе к другому домену. Это то, что вы не можете изменить.

Вот список ваших вариантов на данный момент

  • запросить, чтобы ОПЦИИ были разрешены для рассматриваемых веб-серверов. Сообщите команде безопасности, что серверы будут изменены, чтобы получить ответы ОПЦИИ, которые носят строгий характер и обеспечивают безопасность.
  • разместить веб-приложение Angular в том же домене, чтобы браузер не делал запрос OPTIONS.
  • изменить все вызовы API таким образом, чтобы API-запросы выполнялись только GET-запросы без тела (пустые GET-запросы освобождаются от предварительных запросов OPTIONS).
  • создайте прокси API в том же домене, что и приложение Angular, и сделайте, чтобы прокси выполнял все вызовы API в другом домене (внутренние серверы не делают запросов OPTIONS).

Прежде чем приступить к выполнению любого из вышеперечисленных вопросов, проконсультируйтесь с вашей службой безопасности.

...