Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Новые анализаторы безопасности были введены для предотвращения случайной утечки данных пользователей с помощью определенных свойств. Эти анализаторы применяют рекомендации, определяя свойства, которые не имеют явных параметров сериализации, например:
- DesignerSerializationVisibilityAttribute
- DefaultValueAttribute
- Методы
ShouldSerialize[propertyName]
Анализаторы создают такие предупреждения, как:
WFO1000. Свойство "свойство" не настраивает сериализацию кода для его содержимого свойства.
По умолчанию каждый анализатор создает ошибку, гарантируя, что разработчики знают о потенциальных проблемах безопасности и утечки данных в начале процесса разработки.
Это изменение призвано повысить безопасность и удобство обслуживания приложений Windows Forms, применяя надлежащие методики сериализации, что снижает риск случайного воздействия данных.
Прежнее поведение
Ранее свойства в Windows Forms и UserControl элементах управления можно сериализовать конструктором без явной настройки их поведения сериализации. Это может привести к тому, что непреднамеренные данные включаются в созданный код или файлы ресурсов, создавая потенциальный риск безопасности. Это поведение особенно проблематично в пользовательских бизнес-объектах UserControl , где было легко игнорировать сериализацию конфиденциальных данных, которые не должны были быть предоставлены. Например, свойства, содержащие конфиденциальную информацию, такие как пользовательские данные или внутренние конфигурации, могут быть записаны непосредственно в созданные конструктором файлы .cs или внедренные в RESX-файлы .
Новое поведение
Начиная с .NET 9 новые анализаторы безопасности Windows Forms обеспечивают более строгий контроль над сериализацией свойств в элементах управления и UserControl объектах. По умолчанию анализатор создает ошибку, если свойство не имеет явно определенного поведения сериализации CodeDOM. Это поведение гарантирует, что свойства непреднамеренно сериализуются. Параметры .editorconfig можно изменить, чтобы изменить серьезность анализатора или отключить ошибку.
Представленные версии
.NET 9 RC 1
Тип критического изменения
Это изменение может повлиять на совместимость исходного кода.
Причина изменения
Это изменение было сделано по двум основным причинам:
Улучшенная безопасность. Принудив явные определения сериализации, анализатор значительно снижает риск непреднамеренного воздействия данных, особенно в бизнес-приложениях. Это произошло в прошлом, и это все более необходимо сейчас в контексте удаления сериализатора BinaryFormatter. Предотвращая сериализацию как можно больше случайно, не будут возникать проблемы с обратной совместимостью или безопасностью в файлах ресурсов для типов, у которых нет выделенного преобразователя типов.
Улучшенная ясность кода и удобство обслуживания. Эта функция гарантирует, что поведение сериализации является прозрачным и преднамеренным, что помогает в проверках кода и будущем обслуживании.
Рекомендуемое действие
Просмотрите свойства, помеченные анализатором, и настройте соответствующие параметры сериализации по мере необходимости.
Чтобы быстро исправить (не рекомендуется), добавьте следующую запись в файл editorconfig на уровне папки решения или папки проекта:
[*.cs] # WFO1000: A property should determine its property content serialization with the DesignerSerializationVisibilityAttribute, DefaultValueAttribute or the ShouldSerializeProperty method dotnet_diagnostic.WFO1000.severity = silent
Затронутые API
- Н/Д