Я этот код, который хранит файл на сервере:Veracode обход каталогов Проблема с #
function void StoreFile(string inputFileName) {
...
var extension = Path.GetExtension(inputFileName);
if(extension == ".csv") {
var fileName = string.Format("{0}_{1}{2}", Session.SessionID, new Guid(), extension);
var dataFileServerPath = _documentService.getPath(fileName, UserProfile.UserName, UserProfile.SourceID);
if(!string.IsNullOrEmpty(dataFileServerPath)) {
try {
using(FileStream dataFile = new FileStream(dataFileServerPath, FileMode.Create)) { .... }
}
cathc(Exception e) { ... }
}
}
else {
throw new NotSupportedFormatError();
}
}
Aftrer Veracode анализа я получаю каталог Траверс выпуск на линии FileStream dataFile = new FileStream(dataFileServerPath, FileMode.Create)
Почему я получаю этот вопрос там, я проверено, является ли расширение файла действительным для моего случая и передал это значение в fileName. Являются ли эти проблемы безопасности и как решить эту проблему?
_documentService.getPath
просто добавляет путь из web.config и имени файла для конкретного пользователя, он не связан с вводом пользователя.
Спасибо за ответ. Ps. Как я могу проверить ввод пользователя (например, inputFileName) в других случаях и не получать проблемы с Veracode? – freshbm
Ну, так как в момент вставки вы уже знаете, что значение, которое вы вставляете, это «.csv», почему бы просто не вставить это напрямую? :-) – AviD
Кроме того, в общем случае это похоже на ошибку в Veracode, в зависимости от того, как определено правило. Другие продукты позволяют уточнить правила проверки, а не уверены в текущем решении для Veracode. В общем, ваш подход должен состоять в том, чтобы убедиться, что вы сделали проверку правильности, и не беспокоитесь об инструменте, который там проверяется. – AviD