Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Narzędzia sztucznej inteligencji mogą znacznie przyspieszyć tworzenie aplikacji Windows — ale szybkość nie powoduje usunięcia odpowiedzialności. Kod generowany przez agenta sztucznej inteligencji to kod dostarczany i odpowiadasz za wszystko w aplikacji niezależnie od tego, jak został napisany.
Na tej stronie omówiono dwa powiązane tematy: odpowiedzialne rozwiązania dotyczące używania narzędzi sztucznej inteligencji do tworzenia aplikacji oraz problemów z zabezpieczeniami specyficznych dla kodu generowanego przez sztuczną inteligencję.
Jesteś właścicielem kodu
Gdy agent AI generuje funkcję, układ interfejsu lub wywołanie API, staje się to twoim kodem w chwili, gdy wykonasz commit. Te same standardy mają zastosowanie do tego, czy kod został napisany ręcznie, czy wygenerowany:
- Przeczytaj i zrozum każdą zmianę przed zaakceptowaniem
- Testowanie kodu wygenerowanego przez sztuczną inteligencję co najmniej tak dokładnie jak ręcznie napisany kod — modele mogą generować wiarygodnie wyglądający kod, który jest subtelnie nieprawidłowy
- Nie używaj „to napisała sztuczna inteligencja” jako wyjaśnienia błędu lub problemu z bezpieczeństwem w środowisku produkcyjnym
Narzędzia sztucznej inteligencji nie usuwają potrzeby przeglądu kodu. Zmieniają to, co oceniasz, a nie to, czy w ogóle oceniasz.
Co nie wysyłać do narzędzi sztucznej inteligencji
Rozmyślaj o tym, co należy uwzględnić w monitach i oknach kontekstowych:
- Wpisy tajne i poświadczenia — nigdy nie wklejaj kluczy interfejsu API, haseł lub parametrów połączenia w wierszu polecenia. Nawet w prywatnej sesji czatu, poświadczenia w promptach stanowią zagrożenie dla bezpieczeństwa i mogą pojawić się w dziennikach. Zobacz poniżej sekcję Obsługa poświadczeń i kluczy tajnych.
- Dane klienta i dane osobowe — nie używaj rzeczywistych nazw klientów, wiadomości e-mail ani danych użycia jako przykładowych danych wejściowych, nawet w celu wyjaśnienia usterki. Użyj danych syntetycznych.
- Zastrzeżona logika biznesowa — poznaj zasady organizacji dotyczące kodu źródłowego, który można wysyłać do zewnętrznych usług sztucznej inteligencji przed udostępnieniem kodu systemów wewnętrznych.
Walidacja danych wejściowych
Sztuczna inteligencja zwykle generuje permissywną obsługę danych wejściowych. Przed rozpoczęciem działania na danych wejściowych użytkownika zawsze sprawdzaj długości, typy i zakresy.
- Nigdy nie przekazuj surowych wartości
TextBox.Textdo poleceń powłoki, ścieżek plików ani zapytań do bazy danych. - Zweryfikuj długości ciągów przed zapisaniem w magazynie lub wysłaniem za pośrednictwem sieci.
- Użyj metody zezwalania na listę ścieżek plików — sprawdź, czy rozwiązane ścieżki pozostają w oczekiwanych katalogach.
Dodaj to do monitu: "Dodaj limity weryfikacji i długości danych wejściowych do wszystkich pól przeznaczonych dla użytkowników".
Obsługa poświadczeń i sekretów
Nigdy nie należy kodować kluczy interfejsu API, haseł ani parametrów połączenia. Sztuczna inteligencja często generuje ciągi zastępcze, takie jak "your-api-key-here" — traktują je jako błędy.
Zapisz dane logowania w
Windows.Security.Credentials.PasswordVault:var vault = new PasswordVault(); vault.Add(new PasswordCredential("MyApp", username, password));Pobierz je w czasie wykonywania:
var credential = vault.Retrieve("MyApp", username); credential.RetrievePassword();Użyj zmiennych środowiskowych lub usługi Azure Key Vault do przechowywania poświadczeń usługi w scenariuszach serwerowych lub CI.
Integralność pakietów i zależności
Przed dodaniem go do projektu należy przejrzeć każdy pakiet NuGet sugerowany przez agenta sztucznej inteligencji.
- Sprawdź wydawcę w nuget.org — poszukaj niebieskiej tarczy (Microsoft) lub znanego wydawcy.
- Skanuj pod kątem znanych luk w zabezpieczeniach:
dotnet list package --vulnerable - Preferuj pakiety z najnowszymi aktualizacjami i aktywną konserwacją.
Możliwości i uprawnienia aplikacji
Pliki generowane przez Package.appxmanifest sztuczną inteligencję często obejmują szerokie możliwości. Przejrzyj sekcję <Capabilities> i usuń wszystkie elementy, których aplikacja nie potrzebuje.
Typowe nadmierne możliwości, które należy obserwować:
-
broadFileSystemAccess— potrzebne tylko wtedy, gdy aplikacja naprawdę odczytuje dowolne ścieżki systemu plików -
documentsLibrary— wymaga specjalnej zgody Sklepu; unikaj, chyba że jest to konieczne -
userAccountInformation— tylko wtedy, gdy potrzebujesz nazwy użytkownika lub zdjęcia
Lista kontrolna przeglądu kodu
Przed wysyłką kodu wygenerowanego przez sztuczną inteligencję sprawdź:
- Brak zakodowanych na stałe wpisów tajnych ani poświadczeń
- Dane wejściowe użytkownika zweryfikowane przed użyciem
- Ścieżki plików sprawdzane względem dozwolonych katalogów
- Minimalne wymagane możliwości zadeklarowane w manifeście
- Pakiety NuGet skanowane pod kątem luk w zabezpieczeniach (
dotnet list package --vulnerable) - Poufne dane przechowywane w
PasswordVault, a nie wApplicationData.LocalSettings - Wszystkie wywołania sieciowe używają protokołu HTTPS
- Komunikaty o wyjątkach nie ujawniają użytkownikom wewnętrznych ścieżek ani stosów wywołań
Modele sztucznej inteligencji mają nieaktualną wiedzę
Narzędzia sztucznej inteligencji, których używasz dzisiaj, zostały wytrenowane na danych z określoną datą graniczną. W przypadku programowania dla systemu Windows oznacza to, że modele miały do czynienia ze znacznie większą liczbą przykładów UWP niż przykładów WinUI 3 — i właśnie dlatego powstała ta sekcja dokumentacji.
Nie traktuj danych wyjściowych sztucznej inteligencji jako autorytatywnych dla:
- Aktualne nazwy interfejsu API i przestrzenie nazw (zweryfikuj względem dokumentacji interfejsu API WinUI 3)
- Bieżące wersje zestawu SDK i nazwy pakietów
- Zasady sklepu i wymagania dotyczące zgłoszeń (te zasady i wymagania często się zmieniają)
- Wskazówki dotyczące zabezpieczeń (modele mogą odtworzyć nieaktualne wzorce kryptograficzne lub uwierzytelniania)
Serwer Microsoft Learn MCP i wtyczka agenta WinUI ograniczają problem nieaktualnej wiedzy, opierając agenta na aktualnej dokumentacji — ale zawsze weryfikuj wszelkie kwestie krytyczne dla bezpieczeństwa w źródłach pierwotnych.
Accessibility
Interfejs użytkownika generowany przez sztuczną inteligencję często pomija obsługę ułatwień dostępu. Model wytrenowany na podstawie milionów próbek XAML odtworzy przeciętną jakość tych próbek — a ta przeciętna historycznie pomija AutomationProperties, obsługę klawiaturą i wystarczający kontrast.
Podczas akceptowania kodu XAML wygenerowanego przez sztuczną inteligencję lub kontrolek:
- Sprawdź, czy elementy interakcyjne mają ustawione
AutomationProperties.AutomationIdiAutomationProperties.Name - Sprawdź, czy kolejność przenoszenia fokusu jest logiczna — punkty zatrzymania klawisza Tab powinny odpowiadać kolejności czytania
- Testowanie za pomocą Narratora lub innego czytnika zawartości ekranu przed wysyłką
- Użyj narzędzia Accessibility Insights for Windows aby automatycznie przechwytywać luki
Poproś agenta jawnie: "Dodaj właściwości ułatwień dostępu do wszystkich elementów interaktywnych w tym języku XAML". Nie zakładaj, że zostało to zrobione.
Jeśli aplikacja korzysta z funkcji sztucznej inteligencji
Jeśli tworzysz funkcje AI w swojej aplikacji — a nie tylko używasz AI do tworzenia tej aplikacji — wiążą się z tym dodatkowe obowiązki.
Bądź przejrzysty wobec użytkowników. Poinformuj użytkowników:
- Jakie dane aplikacja wysyła do usług sztucznej inteligencji
- Czy sztuczna inteligencja podejmuje decyzje, które mają na nie wpływ
- Jak zrezygnować w razie potrzeby
Zapewnij udział człowieka w działaniach o istotnych konsekwencjach. Nie zezwalaj sztucznej inteligencji na autonomiczne usuwanie danych, dokonywanie zakupów, wysyłanie wiadomości w imieniu użytkownika ani wykonywanie innych nieodwracalnych akcji bez wyraźnego potwierdzenia.
Testowanie pod kątem stronniczości i nieoczekiwanych wyników. Modele sztucznej inteligencji mogą generować treści, które są stronnicze, obraźliwe lub niezgodne z faktami. Przed wysyłką przetestuj funkcje sztucznej inteligencji aplikacji przy użyciu różnych danych wejściowych i przypadków brzegowych.
Korzystanie z narzędzi bezpieczeństwa zawartości. Jeśli aplikacja generuje lub przetwarza tekst, obrazy lub inną zawartość, korzystając ze sztucznej inteligencji, użyj Bezpieczeństwo zawartości platformy Azure AI lub równoważnego filtrowania w celu przechwycenia szkodliwych danych wyjściowych, zanim dotrą do użytkowników.
Licencjonowanie i przypisywanie autorstwa
Narzędzia sztucznej inteligencji mogą generować kod podobny do istniejącego kodu open source. Przed użyciem kodu wygenerowanego przez sztuczną inteligencję w aplikacji komercyjnej:
- Znajomość zasad organizacji dotyczących współtworzenia kodu generowanego przez sztuczną inteligencję
- Przejrzyj wskazówki firmy Microsoft dotyczące usługi Copilot i własności intelektualnej
- Zastosuj te same testy zgodności licencji typu open source, które należy wykonać do dowolnego kodu innej firmy
Zasady odpowiedzialnej sztucznej inteligencji firmy Microsoft
Microsoft projektuje produkty i funkcje sztucznej inteligencji oparte na sześciu zasadach: sprawiedliwość, niezawodność i bezpieczeństwo, prywatność i bezpieczeństwo, inkluzywność, przejrzystość i odpowiedzialność.
Dowiedz się więcej na microsoft.com/ai/responsible-ai.