删除安全代码扫描SCS 0028警告

时间:2018-07-05 06:02:19

标签: c# xmlserializer suppress-warnings

https://security-code-scan.github.io/ 在构建期间会显示Visual Studio中的安全扫描警告。目前,我正在努力删除这些警告。我尝试了几个MSDN站点,但是没有运气。 我也阅读了OWSAP,但它们与C#并没有明确的关系。 请找到XMLDeserialization警告的图像。 enter image description here

如果您对警告有任何解决方案。请添加您的答案。

代码:

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;
        }
    }

1 个答案:

答案 0 :(得分:2)

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

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

如果输入是可信任的,则您曾经使用过任何Visual Studio分析器的其他标准操作是Suppress。 Here is an article by Microsoft 关于功能。

我发现用户界面不是很直观,因为您必须单击带下划线的代码,然后才在可使用抑制菜单的行的开头出现气泡:

enter image description here

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

enter image description here