C # webapi - file.delete - проблема безопасности на IIS_USER разрешение на удаление? - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть API, который загружает файл.Перед сохранением его, API проверяет, существует ли старый файл (внутренний вызов DB, ​​чтобы получить старое имя файла).Если старый файл существует, есть команда удаления (file.delete)

Чтобы не получать UnauthorizedAccessException, я добавил разрешение на удаление в NTFS для определенной папки для группы IIS_USER.

Это нормально?Теоретически кто-то может удалить файлы из этой папки через HTTP?

Есть ли возможность предварительно выполнить удаление с другим локальным пользователем, имеющим разрешения на удаление через API (C #), который приложение IIS_USER активирует для команды удаления?

Заранее спасибо за любые советы.Янов.

1 Ответ

0 голосов
/ 20 сентября 2018

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

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

Извините, я не могу больше помочь.

...