Исправление Veracode CWE ID 117 (неправильная нейтрализация вывода для журналов) в VB.NET

У меня есть следующий код, который, если я правильно читаю другие темы по этому вопросу, не должен вызывать сканирование Veracode для отметки CWE 117, но это так. Есть и другие «ответы» для Java / C #, но я ничего не нашел для VB.NET.

Мой код такой:

    Public Function WriteToEventLog(ByVal Entry As String, Optional ByVal AppName As String = "adCoreLibrary", Optional ByVal EventType As EventLogEntryType = Nothing, Optional ByVal LogName As String = "Application", Optional ByVal EventID As Integer = 0, Optional ByVal TaskCategory As TaskCategory = 0) As Boolean

    Dim objEventLog As New EventLog()

    Try
        ' We will try and create our own event log but if not, use the optional default 
        If Not EventLog.SourceExists(AppName) Then
            EventLog.CreateEventSource(AppName, LogName)
        End If

        ' Initialise event log
        objEventLog.BeginInit()

        ' Set the source
        objEventLog.Source = AppName

        ' Write entry
        If Entry IsNot Nothing Then
            ' THE FOLLOWING LINE IS BEING FLAGGED AS CWE-117 NON-COMPLIANT
            objEventLog.WriteEntry(Entry.Replace(vbLf, "_"c).Replace(vbCr, "_"c).Replace(vbTab, "_"c), EventType, EventID, CShort(TaskCategory))
        End If


        ' End initialisation
        objEventLog.EndInit()

        Return True
        Exit Function

    Catch ex As Exception
        If CType(My.Settings.adLogMode, LogMode) <> adCoreLogging.LogMode.Empty Then
            My.Application.Log.WriteEntry("An error occured when trying to write to the Windows Event Log: " & ex.Message.ToString)
            Return False
        End If
    Finally
    End Try

    ' If we get here, we've had a problem
    Return False

End Function

Кто-нибудь может сказать мне, что я здесь делаю не так, пожалуйста?


person shakydd    schedule 29.08.2020    source источник
comment
Вы пробовали применить один из ответов Java / C #?   -  person Craig    schedule 31.08.2020
comment
Эти ответы привели меня к добавлению Replace (vbLf, c) .Replace (vbCr, c) .Replace (vbTab, _c), но, похоже, это не помогло. Кроме того, я не очень хорошо разбираюсь в Java / C #.   -  person shakydd    schedule 31.08.2020


Ответы (1)


Что ж, для тех, кто наткнется на это .... Я придумал ответ.

Мне пришлось заменить оскорбительную строку следующим (после импорта System.Web):

Dim newEntry As String = HttpUtility.HtmlEncode(Entry)
objEventLog.WriteEntry(newEntry, EventType, EventID, CShort(TaskCategory))

Я понятия не имею, почему Veracode разрешил это, поскольку по сути это то же самое, но вот мы.

person shakydd    schedule 02.09.2020