Как отправить безопасный запрос на уровень данных через брандмауэр - PullRequest
0 голосов
/ 02 сентября 2010

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

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

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

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

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

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

Спасибо, ребята!

1 Ответ

0 голосов
/ 02 сентября 2010

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

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

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

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

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

...