Säkerhet och ansvarsfull AI för Windows utveckling

AI-verktyg kan dramatiskt påskynda Windows apputveckling – men hastigheten tar inte bort ansvaret. Koden som AI-agenten genererar är kod som du skickar och du är ansvarig för allt i din app oavsett hur den skrevs.

Den här sidan beskriver två relaterade ämnen: ansvarsfulla metoder för att använda AI-verktyg för att skapa appar och säkerhetsproblem som är specifika för AI-genererad kod.

Du äger koden

När en AI-agent genererar en funktion, en layout eller ett API-anrop blir det din kod i samma ögonblick som du checkar in det. Samma standarder gäller oavsett om koden har skrivits för hand eller genererats:

  • Läs och förstå varje ändring innan du godkänner den
  • Testa AI-genererad kod minst lika noggrant som handskriven kod – modeller kan generera rimlig kod som är subtilt felaktig
  • Använd inte "AI:n skrev den" som en förklaring till en bugg eller ett säkerhetsproblem i produktion

AI-verktyg tar inte bort behovet av kodgranskning. De ändrar vad du granskar, inte huruvida du granskar.

Vad du inte ska skicka till AI-verktyg

Var medveten om vad du inkluderar i prompter och kontextfönster:

  • Hemligheter och autentiseringsuppgifter – Klistra aldrig in API-nycklar, lösenord eller anslutningssträngar i en prompt. Även i en privat chattsession är autentiseringsuppgifter i prompter en säkerhetsrisk och kan visas i loggar. Se Autentiseringsuppgifter och hemlig hantering nedan.
  • Kunddata och PII – Använd inte riktiga kundnamn, e-postmeddelanden eller användningsdata som exempelindata, inte ens för att förklara en bugg. Använd syntetiska data.
  • Egen affärslogik – Förstå organisationens princip för vilken källkod som kan skickas till externa AI-tjänster innan du delar kod för interna system.

Validering av indata

AI tenderar att generera tillåtande indatahantering. Verifiera alltid längder, typer och intervall innan du agerar på användarindata.

  • Skicka aldrig rådatavärden TextBox.Text till gränssnittskommandon, filsökvägar eller databasfrågor.
  • Verifiera stränglängder innan du skriver till lagring eller skickar via nätverket.
  • Använd en metod med tillåten lista för filsökvägar – kontrollera att upplösta sökvägar förblir inom de förväntade katalogerna.

Lägg till det här i prompten: "Lägg till indataverifiering och längdgränser för alla användarriktade fält."

Hantering av autentiseringsuppgifter och hemlighet

Hårdkoda aldrig API-nycklar, lösenord eller anslutningssträngar. AI genererar ofta platshållarsträngar som "your-api-key-here" – behandla dessa som buggar.

  • Lagra autentiseringsuppgifter i Windows.Security.Credentials.PasswordVault:

    var vault = new PasswordVault();
    vault.Add(new PasswordCredential("MyApp", username, password));
    
  • Hämta dem vid körning:

    var credential = vault.Retrieve("MyApp", username);
    credential.RetrievePassword();
    
  • Använd miljövariabler eller Azure Key Vault för tjänstautentiseringsuppgifter i scenarier på serversidan eller CI.

Paket- och beroendeintegritet

Granska varje NuGet-paket som en AI-agent föreslår innan du lägger till det i projektet.

  • Kontrollera utgivaren på nuget.org – leta efter den blå skölden (Microsoft) eller en känd utgivare.
  • Sök efter kända sårbarheter:
    dotnet list package --vulnerable
    
  • Föredrar paket med de senaste uppdateringarna och aktivt underhåll.

Appfunktioner och -behörigheter

AI-genererade Package.appxmanifest filer innehåller ofta breda funktioner. Granska avsnittet <Capabilities> och ta bort allt som din app inte behöver.

Vanliga övergripande funktioner att hålla utkik efter:

  • broadFileSystemAccess – behövs bara om appen verkligen läser godtyckliga filsystemsökvägar
  • documentsLibrary — kräver särskilt godkännande från Store; undvik om det inte är nödvändigt
  • userAccountInformation – endast om du behöver användarens namn eller foto

Checklista för kodgranskning

Kontrollera följande innan du skickar AI-genererad kod:

  • Inga hårdkodade hemligheter eller autentiseringsuppgifter
  • Användarindata verifierade före användning
  • Filsökvägar kontrollerade mot tillåtna kataloger
  • Minsta nödvändiga funktioner som deklareras i manifestet
  • NuGet-paket genomsökta efter sårbarheter (dotnet list package --vulnerable)
  • Känsliga data som lagras i PasswordVault, inte ApplicationData.LocalSettings
  • Alla nätverksanrop använder HTTPS
  • Undantagsmeddelanden exponerar inte interna sökvägar eller stackspårningar för användare

AI-modeller har inaktuell kunskap

AI-verktygen som du använder i dag har tränats på data med ett slutdatum. För Windows utveckling innebär det att modeller har sett mycket fler UWP-exempel än WinUI 3-exempel – vilket är exakt varför det här dokumentationsavsnittet finns.

Behandla inte AI-utdata som auktoritativa för:

  • Aktuella API-namn och namnområden (verifiera mot WinUI 3 API-referens)
  • Aktuella SDK-versioner och paketnamn
  • Lagra principer och krav för inlämning (dessa ändras ofta)
  • Säkerhetsvägledning (modeller kan återskapa inaktuella kryptografi- eller autentiseringsmönster)

Microsoft Learn MCP-servern och WinUI-agenten minimera inaktuell kunskap genom att jorda din agent i den aktuella dokumentationen – men kontrollera alltid något säkerhetskritiskt mot primära källor.

Accessibility

AI-genererat användargränssnitt utelämnar ofta hjälpmedelsstöd. En modell som tränats på miljontals XAML-exempel återger den genomsnittliga kvaliteten hos dessa exempel – och det historiska genomsnittet utelämnar AutomationProperties, tangentbordsnavigering och tillräcklig kontrast.

När du accepterar AI-genererad XAML eller styr kod:

  • Kontrollera att interaktiva element har AutomationProperties.AutomationId och AutomationProperties.Name angivna
  • Kontrollera att fokusordningen är logisk – tabbstopp bör följa läsordningen
  • Testa med Narrator eller en annan skärmläsare innan du lanserar
  • Använd verktyget Accessibility Insights for Windows för att fånga upp luckor automatiskt

Fråga din agent explicit: "Lägg till hjälpmedelsegenskaper till alla interaktiva element i den här XAML:en." Anta inte att det var gjort.

Om din app använder AI-funktioner

Om du skapar AI-funktioner i din app – inte bara använder AI för att skriva appen – gäller ytterligare ansvarsområden.

Var transparent med användare. Berätta för användarna:

  • Vilka data din app skickar till AI-tjänster
  • Om AI fattar beslut som påverkar dem
  • Så här avregistrerar du dig om det är lämpligt

Håll människor involverade i åtgärder med betydande konsekvenser. Låt inte AI ta bort data autonomt, göra inköp, skicka meddelanden för användarens räkning eller vidta andra oåterkalleliga åtgärder utan uttrycklig bekräftelse.

Testa för bias och oväntade utdata. AI-modeller kan producera utdata som är partiska, stötande eller faktamässigt felaktiga. Testa appens AI-funktioner med olika indata och kantfall innan du skickar dem.

Använd säkerhetsverktyg för innehåll. Om din app genererar eller bearbetar användarriktad text, bilder eller annat innehåll med AI använder du Azure AI Innehållsäkerhet eller motsvarande filtrering för att fånga skadliga utdata innan de når användarna.

Licensiering och attribution

AI-verktyg kan generera kod som liknar befintlig öppen källkod. Innan du använder AI-genererad kod i en kommersiell app:

Microsofts principer för ansvarsfull AI

Microsoft utformar AI-produkter och funktioner som styrs av sex principer: rättvisa, tillförlitlighet och säkerhet, sekretess och säkerhet, inkludering, transparens och ansvarsskyldighet.

Läs mer på microsoft.com/ai/responsible-ai.