Безопасность диска
Вы можете позволить утилите wipe сделать всю работу за вас.
Если вы используете ASP.NET в Mono / Linux, вы можете использовать команду wipe
через класс Process
(убедитесь, что пакет wipe установлен).
Если вы используете Windows, подход такой же. Используйте утилиту wipe.exe
, которая выполняет жесткую очистку, когда вам нужно безопасно утилизировать файл.
Мне нравится этот веб-сайт, который распространяет бесплатный wipe.exe, который не входит в стандартную установку Windows (слишком плохо).
Второй способ - реализовать алгоритм Гутмана , но я думаю, что дешевле использовать чужой код.
Имейте в виду, что очистка очень интенсивна при вводе / выводе, не ждите ее завершения, иначе вы можете значительно замедлить работу приложения. Кроме того, на сильно загруженных веб-сайтах может наблюдаться значительное замедление.
Безопасность памяти
Класс SecureString
помогает вам не оставлять следов в памяти. Но когда вы работаете с файлами, вы на самом деле работаете с потоками. Я не уверен, что беспокоюсь о содержимом энергозависимой памяти (даже если вы работаете с документами Wikileaks).
Сначала вы должны выполнить анализ угроз , чтобы узнать, каковы основные угрозы для памяти. Вот несколько вопросов:
- Может ли кто-нибудь получить доступ к серверу с учетной записью администратора / root с возможностью выполнения дампа памяти? (Обычные пользователи не могут читать вашу память, а .NET предотвращает переполнение буфера из-за неиспользуемых указателей)
- Может ли кто-нибудь физически получить доступ к серверу? Разве вы не достаточно доверяете своему хостинг-провайдеру? Вы вместо этого запускаете виртуальный сервер?
Если ответ не да , вам не стоит беспокоиться о безопасности памяти
Обмен пространства безопасности
Даже если вы работаете в Windows, позвольте мне вызвать «swap» файл подкачки, или файл виртуальной памяти, или что-то еще. Вы можете подумать о его отключении (убедитесь, что у вас много оперативной памяти) или, в противном случае, вы можете подумать о его шифровании (но вы получите снижение производительности).
Но, опять же, для того, чтобы кто-то сканировал ваш файл подкачки во время выполнения, он должен быть пользователем root или иметь физический доступ к выключенному серверу.
Если данные слишком чувствительны, я бы отключил обмен.
[Добавить] Я уверен, что вы уже используете SSL для загрузки файла, на тот случай, если вы забыли некоторые принципы ...