3

Visual Studio 中的安全扫描警告会在构建期间显示。目前,我正在努力消除这些警告。我尝试了几个 MSDN 站点,但没有运气。我也读过 OWSAP,但它们与 C# 没有明确的关系。

在此处输入图像描述

代码:

public static class XMLUtility
    {
        public static T DeserializeXML<T>(this string xmlString)
        {
            T returnValue = default(T);
            if (string.IsNullOrEmpty(xmlString))
                return returnValue;
            XmlSerializer serial = new XmlSerializer(typeof(T));
            StringReader reader = new StringReader(xmlString);
            object result = serial.Deserialize(reader);
            if (result != null && result is T)
            {
                returnValue = ((T)result);
            }
            return returnValue;
        }
    }
4

1 回答 1

3

首先警告是有效的,因为类型 T 和 xmlString 是从外部传递的,并且可能不受信任(用户输入)。您可以查看ysoserial.net以获得概念证明。

未针对警告实施代码修复程序,这就是“显示潜在修复”链接不起作用的原因。有太多选项可以解决这个问题,所以必须手动完成。您是否单击了SCS0028 链接以了解潜在的解决方案?

如果输入是可信的,那么如果您曾经使用过任何 Visual Studio 分析器,则另一个标准操作是 Suppress。这是 Microsoft关于该功能的文章。

我发现 UI 不是很直观,因为您必须单击带下划线的代码段,然后才会在可用抑制菜单的行首出现一个气泡:

在此处输入图像描述

菜单可用的另一个地方是错误列表:

在此处输入图像描述

于 2018-07-24T07:31:18.087 回答