Проблема Ibm appscan security pathtraversal в методе file. copy в VB.NET
Я запустил IBM AppScan tool на VB.Чистый источник.Я получаю одну проблему безопасности в файле.Скопируйте метод в категорию обхода пути.
Детали Выпуска -
Тип Уязвимости
PathTraversal
Этот API принимает каталог, имя файла или и то, и другое. Если для создания пути к файлу используются предоставленные пользователем данные, то этим путем можно манипулировать, указывая на каталоги и файлы, доступ к которым запрещен или которые могут содержать вредоносные данные или код.
Как я могу исправить эту проблему?
Imports System.Web.Security.AntiXss Private Function ProcessFile() As Boolean Dim drive As String = String.Empty Dim folder As String = String.Empty Dim filename As String = String.Empty Dim sourcePath As String = String.Empty Dim destinationPath As String = String.Empty drive = AntiXssEncoder.XmlEncode(String.Format("{0}", System.Configuration.ConfigurationManager.AppSettings("Drive").ToString())) folder = AntiXssEncoder.XmlEncode(String.Format("{0}", System.Configuration.ConfigurationManager.AppSettings("Folder").ToString())) filename = AntiXssEncoder.XmlEncode(String.Format("{0}", System.Configuration.ConfigurationManager.AppSettings("File").ToString())) sourcePath = Path.Combine(drive, folder, filename) destinationPath = Path.Combine(drive, folder, "text2.txt") Try If sourcePath.IndexOfAny(Path.GetInvalidPathChars()) = -1 AndAlso destinationPath.IndexOfAny(Path.GetInvalidPathChars()) = -1 Then File.Copy(sourcePath, destinationPath, True) Return True Else Return False End If Catch ex As Exception Return False End Try End Function
Что я уже пробовал:
Мы попробовали следующие подходы, чтобы исправить эту проблему, но она не работает-
1) Путь.Метод Combine () - используется метод Combine для объединения значений, которые мы получаем из конфигурационного файла, вместо использования & для конкатенации строк.
2) используемые классы DirectoryInfo и FileInfo и метод GetFullPath
3) объявление переменных только для чтения-создается переменная только для чтения и назначается путь к файлу.
4) Проверьте имя файла с помощью Path.GetInvalidFileNameChars () перед передачей-используется этот метод для проверки имени файла.
5) Проверка имени файла с помощью регулярного выражения - используется регулярное выражение для проверки пути к файлу перед передачей его в файл.Функция Copy или CreateDirectory.
F-ES Sitecore
Это зависит от того, какая именно проблема у него с File.Copy. Говорить, что у него есть проблема, но не объяснять точно, в чем она заключается, - это просто бороться вслепую.
Dave Kreskowiak
Не зная, на что смотрит инструмент ApPScan и что вызывает срабатывание этого сообщения,вы шарите в темноте. Вы должны выяснить, на что он смотрит.
Честно говоря, ИМХО, люди тратят слишком много времени на то, чтобы сделать инструмент счастливым, вместо того чтобы понять, что это за инструмент и должен ли он вообще применяться к конкретной ситуации.
Deepak A Rajput
Инструмент IBM Appscan используется для выявления уязвимостей, присутствующих в приложении. Когда я сканирую наше приложение, оно показывает проблему безопасности в файле.Метод копирования (источник, назначение )в разделе тип проблемы обхода пути и классификация как покрытие сканирования. Он рассматривает параметры метода как ненадежные пользовательские входные данные. В то время как я извлекаю эти значения из конфигурационного файла.
Dave Kreskowiak
Я знаю, что делает этот инструмент. Это правило, на которое он жалуется, вы должны знать. Опять же, возникает вопрос, приемлемо ли это в вашей ситуации? На этот вопрос можешь ответить только ты.