Delen via


Nieuwe beveiligingsanalyses

Er zijn nieuwe beveiligingsanalyses geïntroduceerd om te voorkomen dat gebruikersgegevens per ongeluk worden gelekt via bepaalde eigenschappen. Met deze analyses worden aanbevolen procedures afgedwongen door eigenschappen te identificeren die geen expliciete serialisatie-instellingen hebben, bijvoorbeeld:

De analyzers produceren waarschuwingen zoals:

WFO1000: Eigenschap 'eigenschap' configureert de codeserialisatie niet voor de inhoud van de eigenschap.

Standaard produceert elke analyse een fout, zodat ontwikkelaars zich vroeg in het ontwikkelingsproces bewust worden gemaakt van mogelijke problemen met beveiliging en gegevenslekken.

Deze wijziging is bedoeld om de beveiliging en onderhoudbaarheid van Windows Forms-apps te verbeteren door de juiste serialisatieprocedures af te dwingen, waardoor het risico op onbedoelde blootstelling aan gegevens wordt verminderd.

Vorig gedrag

Eerder konden eigenschappen in Windows Forms en UserControl besturingselementen worden geserialiseerd door de ontwerper zonder expliciete configuratie van hun serialisatiegedrag. Dit kan ertoe leiden dat onbedoelde gegevens worden opgenomen in de gegenereerde code- of resourcebestanden, waardoor er een mogelijk beveiligingsrisico ontstaat. Dit gedrag was met name problematisch in aangepaste Line-Of-Business-objecten UserControl , waarbij het gemakkelijk was om de serialisatie van gevoelige gegevens te overzien die niet zichtbaar zouden moeten zijn. Eigenschappen met gevoelige informatie, zoals gebruikersgegevens of interne configuraties, kunnen bijvoorbeeld rechtstreeks worden geschreven naar de door de ontwerper gegenereerde .cs bestanden of ingesloten in RESX-bestanden .

Nieuw gedrag

Vanaf .NET 9 dwingen de nieuwe Windows Forms-beveiligingsanalyses strengere controle af over de serialisatie van eigenschappen in besturingselementen en UserControl objecten. Standaard produceert de analyse een fout als een eigenschap niet expliciet het codeDOM-serialisatiegedrag heeft. Dit gedrag zorgt ervoor dat eigenschappen niet per ongeluk worden geserialiseerd. U kunt de .editorconfig-instellingen aanpassen om de ernst van de analyse te wijzigen of de fout te onderdrukken.

Versie geïntroduceerd

.NET 9 RC 1

Type wijziging die fouten veroorzaken

Deze wijziging kan van invloed zijn op de broncompatibiliteit.

Reden voor wijziging

Deze wijziging is om twee primaire redenen aangebracht:

  • Verbeterde beveiliging: Door expliciete serialisatiedefinities af te dwingen, vermindert de analyse het risico op onbedoelde blootstelling van gegevens, met name in LOB-toepassingen. Dit is in het verleden gebeurd en het is nu des te meer nodig in de context van het verwijderen van de BinaryFormatter-serialisatiefunctie. Door te voorkomen dat zoveel mogelijk per ongeluk wordt geserialiseerd, zijn er geen achterwaartse compatibiliteits- of beveiligingsproblemen rond binaire serialisatie in bronbestanden voor typen die geen toegewezen typeconversieprogramma hebben.

  • Verbeterde codehelderheid en onderhoudbaarheid: deze functie zorgt ervoor dat serialisatiegedrag transparant en opzettelijk is, wat helpt bij codebeoordelingen en toekomstig onderhoud.

  • Controleer de eigenschappen die door de analyse zijn gemarkeerd en configureer indien nodig de juiste serialisatie-instellingen.

  • Voeg voor een snelle oplossing (niet aanbevolen) de volgende vermelding toe in een .editorconfig-bestand op het niveau van de oplossingsmap of projectmap:

    [*.cs]
    
    # WFO1000: A property should determine its property content serialization with the DesignerSerializationVisibilityAttribute, DefaultValueAttribute or the ShouldSerializeProperty method
    dotnet_diagnostic.WFO1000.severity = silent
    

Betrokken API's

  • N.v.t.