Как отправить безопасный запрос на уровень данных через брандмауэр

Меня попросили заполнить флэш-файл некоторыми данными из базы данных. Я сказал: "Отлично, я напишу немного PHP, который общается с базой данных и выводит xml. SWF может вызвать этот файл".

Затем мой босс сказал мне, что это решение не поможет, и мне нужно будет найти более безопасный способ сделать это. Тьфу!

Мое предлагаемое решение заключается в создании некоторой бизнес-логики, которая живет за пределами нашего корпоративного брандмауэра. ActionScript сделает запрос к этому файлу, который отправит безопасный запрос на средний уровень, который будет находиться за брандмауэром. Средний уровень обрабатывает запрос, подключаясь к базе данных и возвращая соответствующие данные через брандмауэр через то же безопасное соединение. Затем бизнес-логика выводит xml, и все довольны.

Я наметил, что я пытаюсь сделать, чтобы сделать это очень ясно: http://twitpic.com/2kj0tk

Вот мои вопросы:

  1. Соответствует ли это решение лучшим отраслевым практикам?
  2. Это будет работать?
  3. Какой код мне нужно написать на каждом уровне, чтобы установить безопасное соединение и передать данные через этот брандмауэр? Я думал, может быть, я мог бы использовать CURL, но я не знаю, будет ли это работать через брандмауэр. Кто-нибудь возражает против того, как решить эту проблему, с примерами кода, если это возможно?
  4. Может случиться так, что мне придется написать решение в.NET. Как это изменит мой подход?4.
  5. Какая, если таковая имеется, другая информация, которая вам нужна от меня, чтобы помочь решить эту проблему?

Спасибо, парни!

1 ответ

Решение

В зависимости от типа данных, которые вы защищаете, и от того, насколько безопасны ваши ИТ-отделы, "реальным" решением будет разместить ваши серверы баз данных за собственными брандмауэрами (да, внутри вашей корпоративной сети). Ваш средний уровень будет общаться с базой данных, используя стандартные протоколы через этот брандмауэр.

Ваш средний уровень работает за вашим "основным" брандмауэром (здесь могут быть разные уровни, но проще всего это брандмауэр, который находится между вашей сетью и Интернетом).

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

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

Мой вопрос к боссу: "Почему оригинальное решение плохая идея?". Они хотят, чтобы данные были зашифрованы во внутренней сети? Или это только веб-серверы -> Соединение с сервером БД, что мешает (с чем я согласен)?

Другие вопросы по тегам