当前位置: 首页 > 知识库问答 >
问题:

纠正VB.NET中的Veracode CWE ID 117(日志输出中和不当)

丁立果
2023-03-14
    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

共有1个答案

李凯定
2023-03-14

嗯,对于任何一个偶然发现这个的人....我找到了答案。

我不得不将以下内容替换为令人不快的行(在导入System.web之后):

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

我不知道为什么Veracode允许这样做,因为本质上还是一样的,但是,我们在那里。

 类似资料:
  • 问题内容: 有一个Spring全局方法记录如下异常: Veracode扫描说此日志记录已经并建议使用ESAPI记录器。有什么方法可以解决此漏洞而无需将记录器更改为ESAPI?这是我在代码中唯一遇到此问题的地方,我试图找出如何用最少的更改来解决它。也许ESAPI有一些我没有注意到的方法? PS Current logger是slf4j上的Log4j UPD: 最后,我使用了ESAPI记录器。我以为它

  • Spring global方法记录如下异常: Veracode scan指出,该日志有,并建议使用ESAPI日志记录器。有没有什么方法可以在不将记录器更改为ESAPI的情况下修复此漏洞?这是我在代码中唯一面对这个问题的地方,我试图找出如何用最少的更改来修复它。也许ESAPI有一些我没有注意到的方法? ESAPI有log4j记录器和记录器工厂的扩展。可以在esapi.properties中配置要使用

  • 你如何测试和调试你的代码呢?Lua 的两个主力作者是这样回复的: Luiz Henrique de Figueiredo:我主要是一块一块的构建,分块测试。我很少使用调试器。即使用调试器,也只是调试 C 代码。我从不用调试器调试 Lua 代码。对于 Lua 来说,在适当的位置放几条打印语句通常就可以胜任了。 Roberto Ierusalimschy:我差不多也是这样。当我使用调试器时,通常只是用

  • Blade使用了 slf4j-api 作为日志接口,为了方便起见,默认内置了日志实现, 包含按日期进行文件归档等操作,一个小型应用无需配置日志组件。 maven的坐标名为 blade-log,源码在 这里 默认的日志级别是 INFO,你可以修改它。使用日志和往常一样: public class LogExample { private static final org.slf4j.Logg

  • 我尝试使用clean=message.replace('\n','').replace('\r','')。但它仍然无法通过veracode扫描。有什么更好的方法做这件事吗?另外,我阅读了关于ESAPI、Python的文章,但没有得到任何好的文档来修复这个问题。

  • 如何阻止py2neo吐出每个创建的关系/节点,如下所示: 正如本页所鼓励的,当我将下面的行设置为关闭时 当我调用创建关系/节点的函数时,我保持日志记录沉默。但是,如果我直接在main中创建一些内容(graph.create(...)),那么我仍然会在控制台看到这个打印结果。