Безопасная загрузка файла на альтернативный сервер C # .net 2.0

StackOverflow https://stackoverflow.com/questions/603271

Вопрос

У меня есть веб-приложение C # на .net 2.0, размещенное на сервере A.Веб-приложение позволяет пользователям загружать файлы с помощью <input id="File1" name="filMyFile" type="file" runat="server" /> на сервер A.Все это работает просто отлично.

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

Меня просят сделать это по соображениям безопасности.Я думал о возможном использовании iframe и о том, чтобы сервер B размещал только часть загрузки, обертывающую запрос с помощью SSL.Я не совсем уверен в последствиях этого для безопасности, однако я видел несколько веб-сайтов, на которых для управления входом в систему они защищают только iframe, содержащий часть входа в систему, а остальная часть их сайта была небезопасной.

Нормально ли это делать?Кто-нибудь может порекомендовать лучший способ?Возможно, предложите базовую архитектуру.

Это было полезно?

Решение

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

Другие советы

Почему бы вам просто не установить form действие к защищенной SSL странице на сервере B?

<form method="POST" action="https://serverb/uploadmanager.ashx" ...>

Вы также можете записать файл непосредственно в базу данных SQL.Я предпочитаю такой подход с точки зрения безопасности, поскольку файл никогда не хранится на жестком диске сервера.Затем он может быть передан между двумя серверами.

Оборотной стороной является то, что сложнее выполнять AV-сканирование файлов, которые не были предварительно записаны на диск.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top