Удалить код безопасности Scan SCS 0028 Предупреждения - PullRequest
0 голосов
/ 05 июля 2018

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 голосов
/ 24 июля 2018

Прежде всего, предупреждение является действительным, потому что тип T и xmlString передаются извне и потенциально ненадежны (пользовательский ввод). Вы можете проверить ysoserial.net для подтверждения концепции.

Исправители кода не включены для предупреждения, поэтому ссылка «Показать возможные исправления» не работает. Есть слишком много вариантов, чтобы решить проблему, поэтому это нужно сделать вручную. Вы нажали на ссылку SCS0028 , чтобы прочитать о возможных решениях?

Если ввод является доверенным, другим стандартным действием, если вы когда-либо работали с любым анализатором Visual Studio, является Подавить. Вот статья Microsoft о функциональности.

Я считаю, что пользовательский интерфейс не очень интуитивно понятен, потому что вы должны нажать на подчеркнутый кусок кода, только тогда в начале строки, где доступно меню подавления, появляется пузырь:

enter image description here

Другое место, где доступно меню, это Список ошибок:

enter image description here

...