2015-02-10 1 views
0

Я получаю FORTIFY ошибку в строках ниже -Fortify - Путь Манипуляция

string path = "<hardcodedpath>"; 
    var fileBytes = System.IO.File.ReadAllBytes(path + fileName); 
    return File(fileBytes, System.Web.MimeMapping.GetMimeMapping(fileName), fileName); 

например: - путь = C: \ WorkSpace \ Project \\ Files \

Я удостоверяясь (белый список ?), что параметр fullPath выбран из предопределенной папки (код для этого не вставлен здесь), и никто не сможет использовать любые другие файлы, кроме тех, которые находятся в предопределенной папке.

Тем не менее, Fortify не отмечает эти проблемы как разрешенные. Как я могу решить эту проблему с помощью Fortify? Есть ли еще что-то, о чем нужно позаботиться?

Сообщение об ошибке - Атакующие могут управлять аргументом пути файловой системы к ReadAllBytes() на линии .cs line 446, что позволяет им получать доступ к другим защищенным файлам или изменять их.

+0

Возможный дубликат [Нарушение безопасности - Fortify, MVC] (http://stackoverflow.com/questions/28175747/security-violation-fortify-mvc) –

+0

Это не дубликат, если вы точно прочитали вопрос. –

+0

Не видя контекста, трудно понять, как это _not_ дубликат. Пожалуйста, по крайней мере, покажите нам, что код, который вы опубликовали, не находится в действии контроллера, и что для «fullPath» не может быть обработан клиентским кодом. –

ответ

2

Я не могу сделать комментарий из-за глупых правил репутации, поэтому я отвечу на это. Вы показали, откуда происходит «путь», но вы не указываете, откуда происходит «имя_файла». Если значение этой переменной исходит от ненадежного источника, то это является причиной этой проблемы. Вы хотите, чтобы белый список этой переменной, чтобы злоумышленник мог изменить путь. Как только вы узнаете, что ваш белый список хорош, вы можете подавить проблему. Только белый список не остановит Fortify, чтобы снова найти проблему, потому что она не может определить, когда вы являетесь белым.

Вы также можете попробовать опубликовать вопросы о Fortify на своем форуме в https://protect724.hp.com. Группа поддержки контролирует эти форумы.