我们正在使用 Fortify 扫描我们的 .NET 应用程序,并且需要提供一些关于为什么 Log Forging 问题不适用于我们的信息。在我们的代码中,我们有以下模式,当然它不完全是这样,我已经抓住了我们正在做的事情的本质:
public static void Write(object message,
ICollection<string> categories, int priority,
int eventId, TraceEventType severity, string title,
IDictionary<string, object> properties)
{
LogEntry log = new LogEntry();
string MessageToAdd = message.ToString();
if (message.ToString().Length > MaxLength)
log.Message = message.ToString().Substring(0, MaxLength);
else
log.Message = message.ToString();
log.Categories = categories;
log.Priority = priority;
log.EventId = eventId;
log.Severity = severity;
log.Title = title;
log.ExtendedProperties = properties;
Logwriter Logger;
Logger.Write(log);
}
所以基本上,我们控制如何创建日志条目对象。我们将消息或用户输入限制为 100 个字符。因此,我们认为 Fortify 提出的 Log Forging 是误报。
大家怎么看?