Нарушение безопасности — Fortify, MVC

Я использую HP Fortify для решения проблем безопасности в своем приложении. У меня есть фрагмент кода, как показано ниже, для которого Fortify выдает ошибку.

Результат Fortify говорит:

Метод DownloadAttachment() в fileName.cs включает непроверенные данные в заголовок ответа HTTP в строке lineNo. Это делает возможным такие атаки, как отравление кеша, межсайтовый скриптинг, межпользовательская порча, перехват страницы, манипулирование файлами cookie или открытое перенаправление.

Код -

    public ActionResult DownloadAttachment(string fullFilePath)
    {
        var bytes = System.IO.File.ReadAllBytes(fullFilePath);
        return File(bytes, MimeMapping.GetMimeMapping(fullFilePath), Path.GetFileName(fullFilePath));
    }

В чем здесь угроза и как с этим бороться? Какие-либо предложения?


person Bablu Dutt    schedule 27.01.2015    source источник


Ответы (1)


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

Что вам нужно сделать, так это обращаться с вложениями немного более осторожно и немного менее обобщенно — например, это может быть просто использование имени файла в качестве параметра и поиск в заданной папке.

person Wyatt Barnett    schedule 27.01.2015
comment
Я бы не стал исключать уязвимость, связанную с отравлением заголовка ответа. Но вы правы, дизайн этого метода - большая проблема, чем отравление заголовка. - person Douglas Held; 28.01.2015