2013-09-19 3 views
2

Во-первых, я относительно новичок в Web API/CORS и реализации безопасности.Обеспечение доступа в Интернет для моего собственного веб-api во внутренней сети. Угроза безопасности?

Этот вопрос конкретно касается безопасности. Веб-интерфейс API содержит чрезвычайно важные данные и предоставляет клиентам возможность выполнять транзакции онлайн.

Контекст:

  • У меня есть веб-API самодостаточно как службы Windows с фиксированным портом.
  • Веб-интерфейс находится за межсетевым экраном/DMZ во внутренней сети.
  • Веб-API (с использованием CORS) позволяет только трафик с внешнего сервера.
  • Внешний сервер размещает наш веб-сайт с использованием IIS.
  • Веб-API использует аутентификацию Token (привязан к IP-адресу клиента, чтобы избежать привет-подъема).
  • Как внешний веб-сайт, так и внутренний веб-API заставляют использовать SSL.

Проблема:

Веб-страница делает AJAX звонки через JavaScript в Web API. Тем не менее, веб-API напрямую не подвергается воздействию Интернета.

  • Что может повлиять на безопасность при установке ниже?
  • Какие уязвимости я буду подвергать своей сети тоже, делая это.
  • Есть ли лучший способ реализации такой настройки !?

Например

  • https://test.mydomain.com Пользователь вводит в браузер и подается страницу.

  • Ajax вызов получает сделаны https://test.mydomain.com/api/test/action

  • внешних серверов маршрутов https://test.mydomain.com/api сообщений на внутренний сервер https://myInternalWebAPI/api/test/action, который не подвергается общественности.

+1

Это отличная статья (IMO) о защите общедоступных веб-сервисов REST: http: //www.thebuzzmedia.com/design-a-secure-rest-api-no-oauth-authentication/ – EkoostikMartin

+1

@EkoostikMartin Спасибо за эту ссылку, однако, я уже использую 95% этих практик в своем дизайне. Мой вопрос заключается в том, будет ли администратор сети комфортно переадресовывать уже защищенный трафик ajax на внутренний webapi. –

+0

Вы действительно заблуждаетесь (хотя это не так, я думаю). Веб-серверы в DMZ должны взаимодействовать с серверами приложений вне DMZ, это неизбежно за пределами самых простых систем. Обычно это не для архитекторов программного обеспечения, о которых нужно беспокоиться, но о администраторах сети/безопасности. Например, не знаете, зачем вам HTTPS на внутреннем сервере, если вы используете аутентификацию на основе токенов на основе IP-адреса. – EkoostikMartin

ответ

1

Для этого требуется немного работы с ногами, но она внедрена в производственную среду, поэтому я решил поделиться этим решением.

Я создал службу WCF и WebAPI.

Основная служба WCF находится во внутренней сети и содержит всю бизнес-логику, подключение к базе данных. Прокси-сервер WebAPI имитирует структуру сервиса WCF и открыт для публики.

Прокси-сервер WebAPI вызывается из клиента (javascript), прокси-сервер WebAPI затем вызывает внутренний сервер, на котором размещается служба WCF и voila, победа.

+0

Сделано так просто. Я пытаюсь сделать то же самое, что и вы? http://stackoverflow.com/questions/43002283/how-to-allow-internal-mvc-web-api-from-external-site-outside-the-network – Si8