Безопасность сетей

  0f1a9e67   

Соединение с сервером электронной коммерции


Сервер базы данных должен соединяться с сервером электронной коммерции таким образом, чтобы можно было осуществлять обработку транзакций. Как правило, данное соединение осуществляется через соединение SQL (см. рис. 17.3). В идеальном случае сервер базы данных инициирует соединение с системой в демилитаризованной зоне. Это идеальная ситуация, так как система в демилитаризованной зоне не является доверенной частью сети и не должна соединяться с внутренней или доверенной частью сети. Однако тут требуется, чтобы сервер электронной коммерции сохранял информацию о транзакциях (а также запросы) до того, как сервер базы данных инициирует соединение. Это обстоятельство может привести к задержке транзакций или предоставления клиенту информации. В большинстве случаев этот вариант неприемлем.

Единственной альтернативой является инициирование SQL-соединения сервером электронной коммерции, что ведет к возникновению ряда вопросов, связанных с безопасностью. Во-первых, сервер электронной коммерции должен иметь идентификатор и пароль к серверу базы данных, чтобы выполнить данное действие. Этот идентификатор и пароль должны прилагаться в программе или записаны в файле системы. Если идентификатор и пароль находятся в системе электронной коммерции, злоумышленник может завладеть ими и получить доступ к серверу базы данных. Так как сервер базы данных содержит секретную информацию, это крайне недопустимо.

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

Как быть в случае, если информация, которую нужно представить клиенту, является секретной? Это очень серьезная проблема. Например, клиент банка запрашивает данные о балансе на своем счету? Как обработать такой запрос? В лучшем случае, идентификатор и пароль, находящиеся на сервере электронной коммерции, могут быть скомбинированы с некоторым видом аутентификации, через которую проходит клиент. Таким образом, если злоумышленник проник на сервер электронной коммерции, он не сможет получить доступ к секретной информации о клиентах.

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



Содержание раздела