Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
MSBuild is zeer aanpasbaar en uitbreidbaar (zie Uw build aanpassen voor meer informatie), dus speciale zorg moet worden betaald aan de juiste configuratie van de omgeving en build.
Schrijftoegang tot de installatielocatie beperken
Installeer MSBuild (met Visual Studio, de .NET SDK of standalone) op een locatie waar alleen vertrouwde gebruikers schrijftoegang hebben.
U kunt de buildlogica wijzigen door verschillende binaire en XML-bestanden die naast het uitvoerbare BESTAND MSBuild worden geplaatst, te wijzigen of toe te voegen aan de submappen van het uitvoerbare MSBuild-bestand. Daarom mogen alleen vertrouwde gebruikers schrijven naar de map.
Gerelateerde configuraties
-
MSBuildExtensionsPath en MSBuildUserExtensionsPath - met name
ImportUserLocationsByWildcardBefore{ImportingFileNameWithNoDots}eigenschap die kan worden gebruikt om de extensielogica uit te kiezen
Build alleen uitvoeren op bronnen die u kent en hebt beoordeeld
Voer MSBuild uit (voor het bouwen en herstellen van projecten, maar ook voor het openen van projecten in Visual Studio) alleen op bronnen die u volledig vertrouwt.
MSBuild-logica kan worden uitgebreid binnen de buildscriptbestanden, inclusief uw projectbestanden, zodat onbekende buildlogica moet worden verondersteld om willekeurige code uit te voeren in de buildomgeving.
Gerelateerde configuraties
Uw build uitvoeren op een geverifieerde, toegewezen locatie
MSBuild kan automatisch logica opnemen uit een map van uw project of oplossing en uit elke bovenliggende map tot aan de wortelmap van het station. Dit omvat .user bestanden, [before|after].{solution}.targets bestanden, Directory.Build.[props|targets|rsp] bestanden en andere.
Zorg ervoor dat alleen de geautoriseerde gebruikers of accounts schrijftoegang hebben tot de locatie met uw build-gerelateerde bestanden en elke map in een hiërarchische structuur tot aan de hoofdmappen van de schijf.
Om te voorkomen dat Directory.Build.[props|targets|rsp]onbedoeld wordt opgenomen, kunt u dergelijke bestanden opnemen in de hoofdmap van uw bronnen. Het bestand kan een leeg MSBuild Project element zijn.
Gerelateerde configuraties
Pakketten en feeds waarnaar wordt verwezen kennen en controleren
Buildlogica kan automatisch worden uitgebreid door NuGet-pakketten. Dergelijke logica wordt uitgevoerd tijdens het herstellen en wordt onderdeel van uw build- of compilatie-uitvoering. Zorg ervoor dat u bekend bent met de NuGet-pakketassettypen en hun rol tijdens de build, compilatie en runtime. Met name de build, buildTransitive, buildMultitargeting en analyzers assets worden automatisch in de build geïntegreerd en dus tijdens de build automatisch uitgevoerd, tenzij ze expliciet van deelname worden uitgesloten.
Gebruik ExcludeAssets wanneer u de build- of compileruitbreidingslogica niet nodig hebt vanuit een pakket waarnaar wordt verwezen (of nog beter, alleen expliciet IncludeAssets de buildlogica als u dat wilt).
Zorg ervoor dat u bekend bent met de huidige documentatie en richtlijnen van het NuGet-team. Raadpleeg het document in de projectbestandenPackageReference als een gezaghebbende bron voor dit probleem.
Gerelateerde configuraties
Het startproces/-script van de build kennen en controleren
Bouwlogica kan worden beïnvloed door opdrachtregelargumenten of omgevingsvariabelen, met name die kunnen resulteren in de injectie van invoegtoepassingen (bijvoorbeeld aangepaste logboekregistraties) of buildlogica (bijvoorbeeld buildscripts in MSBuildUserExtensionsPath). Zorg ervoor dat u weet welke opdrachtregelargumenten en omgevingsvariabelen worden toegepast op het MSBuild-proces. Op die manier krijgt u meer inzicht in hoe de buildlogica wordt beïnvloed.
Toegewezen gebruikersaccount en -sessie gebruiken om uw build uit te voeren
Voer niet uit onder een account dat eerder op hetzelfde systeem gebruikt zou kunnen zijn om onbekende processen of scripts uit te voeren, inclusief onder een andere build. Vooral als de niet-gerelateerde build onder hetzelfde gebruikersaccount mogelijk is uitgevoerd op bronnen die niet volledig vertrouwd en bekend zijn.
MSBuild kan logica op verschillende locaties uit het gebruikersprofiel ophalen (met name MSBuild SDK bevat automatisch buildlogica die zich in MSBuildUserExtensionsPath locatie bevindt) of vanaf locaties die kunnen worden ingevoegd door omgevingsvariabelen (u kunt MSBuildUserExtensionsPath aanpassen met een MSBuild-eigenschap met dezelfde naam. Deze eigenschap heeft geen standaardwaarde, dus deze kan worden opgehaald uit de omgevingsvariabele met dezelfde naam).
Gerelateerde configuraties
-
MSBuildExtensionsPath en MSBuildUserExtensionsPath: u kunt de eigenschap
ImportUserLocationsByWildcardBefore{ImportingFileNameWithNoDots}instellen opfalseom de automatische opname van de specifieke buildlogica voor extensies af te wijzen.