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.
ClickOnce-toepassingen zijn onderhevig aan beveiligingsbeperkingen voor codetoegang in .NET Framework om de toegang te beperken die code heeft tot beveiligde resources en bewerkingen. Daarom is het belangrijk dat u begrijpt wat de gevolgen zijn van de beveiliging van codetoegang om uw ClickOnce-toepassingen dienovereenkomstig te schrijven. Uw toepassingen kunnen volledig vertrouwen gebruiken of gedeeltelijke zones, zoals internet- en intranetzones, gebruiken om de toegang te beperken.
Daarnaast gebruikt ClickOnce certificaten om de echtheid van de uitgever van de toepassing te verifiëren en om de toepassing en implementatiemanifesten te ondertekenen om te bewijzen dat er niet met de bestanden is geknoeid. Ondertekening is een optionele stap, waardoor het eenvoudiger is om de toepassingsbestanden te wijzigen nadat de manifesten zijn gegenereerd. Zonder ondertekende manifesten is het echter moeilijk om ervoor te zorgen dat het installatieprogramma van de toepassing niet wordt geknoeid in man-in-the-middle-beveiligingsaanvallen. Daarom raden we u aan uw toepassing en implementatiemanifesten te ondertekenen om uw toepassingen te beveiligen.
Zonen
Toepassingen die zijn geïmplementeerd met behulp van ClickOnce-technologie, zijn beperkt tot een set machtigingen en acties die zijn gedefinieerd door de beveiligingszone. Beveiligingszones worden gedefinieerd in de browser en zijn gebaseerd op de locatie van de toepassing. De volgende tabel bevat de standaardmachtigingen op basis van de implementatielocatie:
| Implementatielocatie | Beveiligingszone |
|---|---|
| Uitvoeren vanaf internet | Internetzone |
| Installeren vanaf internet | Internetzone |
| Installeren vanaf netwerkbestandsshare | Lokale intranetzone |
| Installeren vanuit CD-ROM | Volledig vertrouwen |
De standaardmachtigingen zijn gebaseerd op de locatie van waaruit de oorspronkelijke versie van de toepassing is geïmplementeerd; updates voor de toepassing nemen deze machtigingen over. Als de toepassing is geconfigureerd om te controleren op updates vanaf een web- of netwerklocatie en er een nieuwere versie beschikbaar is, kan de oorspronkelijke installatie machtigingen ontvangen voor de zone Internet of Intranet in plaats van machtigingen voor volledig vertrouwen. Om te voorkomen dat gebruikers hierom wordt gevraagd, kan een systeembeheerder een ClickOnce-implementatiebeleid opgeven waarmee een specifieke uitgever van toepassingen wordt gedefinieerd als een vertrouwde bron. Voor computers waarop dit beleid wordt geïmplementeerd, worden machtigingen automatisch verleend en wordt de gebruiker niet gevraagd. Zie Overzicht van implementatie van vertrouwde toepassingen voor meer informatie. Als u de implementatie van vertrouwde toepassingen wilt configureren, kan het certificaat worden geïnstalleerd op het niveau van de machine of op ondernemingsniveau. Zie Instructies voor meer informatie : Een vertrouwde uitgever toevoegen aan een clientcomputer voor ClickOnce-toepassingen.
Opmerking
In ClickOnce voor .NET Core en .NET 5 of hoger wordt deze functie niet ondersteund. Zie ClickOnce voor .NET voor meer informatie.
Beveiligingsbeleid voor codetoegang
Machtigingen voor een toepassing worden bepaald door de instellingen in het <element TrustInfo-element> van het toepassingsmanifest. Visual Studio genereert deze informatie automatisch op basis van de instellingen op de eigenschapspagina 'Beveiliging' van het project. Een ClickOnce-toepassing krijgt alleen de specifieke machtigingen die worden aangevraagd. Als voor bestandstoegang bijvoorbeeld machtigingen voor volledig vertrouwen zijn vereist, als de toepassing toegangsmachtigingen voor bestanden aanvraagt, krijgt deze alleen machtigingen voor bestandstoegang, niet machtigingen voor volledig vertrouwen. Wanneer u uw ClickOnce-toepassing ontwikkelt, moet u ervoor zorgen dat u alleen de specifieke machtigingen aanvraagt die de toepassing nodig heeft. In de meeste gevallen kunt u de zones Internet of Lokaal intranet gebruiken om uw toepassing te beperken tot gedeeltelijke vertrouwensrelatie. Zie Instructies voor meer informatie : Een beveiligingszone instellen voor een ClickOnce-toepassing. Als uw toepassing aangepaste machtigingen vereist, kunt u een aangepaste zone maken. Zie Instructies voor meer informatie : Aangepaste machtigingen instellen voor een ClickOnce-toepassing.
Opmerking
In ClickOnce voor .NET Core en .NET 5 of hoger wordt codetoegangsbeveiliging niet ondersteund. In .NET Framework is het gebruik van Code Access Security geen best practice en wordt het niet aanbevolen.
Als u een machtiging opneemt die geen deel uitmaakt van de standaardmachtigingsset voor de zone waaruit de toepassing wordt geïmplementeerd, wordt de eindgebruiker gevraagd om toestemming te verlenen tijdens de installatie- of updatetijd. Om te voorkomen dat gebruikers hierom wordt gevraagd, kan een systeembeheerder een ClickOnce-implementatiebeleid opgeven waarmee een specifieke uitgever van toepassingen wordt gedefinieerd als een vertrouwde bron. Op computers waarop dit beleid wordt geïmplementeerd, worden automatisch machtigingen verleend en wordt de gebruiker niet gevraagd.
Als ontwikkelaar is het uw verantwoordelijkheid om ervoor te zorgen dat uw toepassing wordt uitgevoerd met de juiste machtigingen. Als de toepassing tijdens runtime machtigingen aanvraagt buiten een zone, kan er een beveiligingsonderzondering worden weergegeven. Met Visual Studio kunt u fouten opsporen in uw toepassing in de doelbeveiligingszone en kunt u helpen bij het ontwikkelen van beveiligde toepassingen. Zie Debug ClickOnce-apps die gebruikmaken van System.Deployment.Application voor meer informatie.
Zie Codetoegangsbeveiliging voor ClickOnce-toepassingen voor meer informatie over beveiliging van codetoegang en ClickOnce.
Certificaten voor ondertekening van programmacode
Als u een toepassing wilt publiceren met behulp van ClickOnce-implementatie, kunt u de toepassing en implementatiemanifesten voor de toepassing ondertekenen met behulp van een openbaar/persoonlijk sleutelpaar. De hulpprogramma's voor het ondertekenen van een manifest zijn beschikbaar op de pagina Ondertekening van projectontwerper. Voor meer informatie, zie de pagina voor ondertekening, Projectontwerpmodule.
Nadat de manifesten zijn ondertekend, worden de uitgeversgegevens op basis van de Authenticode-handtekening weergegeven aan de gebruiker in het dialoogvenster Machtigingen tijdens de installatie om de gebruiker weer te geven dat de toepassing afkomstig is van een vertrouwde bron.
Zie ClickOnce en Authenticode voor meer informatie over ClickOnce en certificaten.
verificatie op basis van formulieren ASP.NET
Als u wilt bepalen welke implementaties elke gebruiker kan openen, moet u anonieme toegang tot ClickOnce-toepassingen die zijn geïmplementeerd op een webserver niet inschakelen. In plaats daarvan kunt u gebruikers toegang geven tot de implementaties die u hebt geïnstalleerd op basis van de identiteit van een gebruiker met behulp van Windows-verificatie.
ClickOnce biedt geen ondersteuning voor ASP.NET verificatie op basis van formulieren omdat er permanente cookies worden gebruikt; deze vormen een beveiligingsrisico omdat ze zich in de browsercache bevinden en kunnen worden gehackt. Als u ClickOnce-toepassingen implementeert, wordt elk verificatiescenario naast Windows-verificatie daarom niet ondersteund.
Argumenten doorgeven
Er wordt een extra beveiligingsoverweging uitgevoerd als u argumenten moet doorgeven aan een ClickOnce-toepassing. Met ClickOnce kunnen ontwikkelaars een queryreeks opgeven voor toepassingen die via internet zijn geïmplementeerd. De querytekenreeks heeft de vorm van een reeks naam-waardeparen aan het einde van de URL die wordt gebruikt om de toepassing te starten:
http://servername.adatum.com/WindowsApp1.application?username=joeuser
Queryreeksargumenten zijn standaard uitgeschakeld. Als u deze wilt inschakelen, moet het kenmerk trustUrlParameters worden ingesteld in het implementatiemanifest van de toepassing. Deze waarde kan worden ingesteld vanuit Visual Studio en vanuit MageUI.exe. Zie Hoe: Queryreeksinformatie ophalen in een online ClickOnce-toepassing voor gedetailleerde stappen om het doorgeven van queryreeksen in te schakelen.
U moet nooit argumenten doorgeven die zijn opgehaald via een querytekenreeks aan een database of aan de opdrachtregel zonder de argumenten te controleren om ervoor te zorgen dat ze veilig zijn. Onveilige argumenten zijn argumenten die escapetekens voor databases of opdrachtregels bevatten waarmee een kwaadwillende gebruiker uw toepassing kan manipuleren in het uitvoeren van willekeurige opdrachten.
Opmerking
Queryreeksargumenten zijn de enige manier om argumenten door te geven aan een ClickOnce-toepassing bij het opstarten. U kunt geen argumenten doorgeven aan een ClickOnce-toepassing vanaf de opdrachtregel.
Geobfusceerde assemblies implementeren
Visual Studio bevat de gratis PreEmptive Protection - Dotfuscator Community, die u kunt gebruiken om uw ClickOnce-toepassingen te beveiligen via codeverhuldiging en actieve beveiligingsmaatregelen. Zie de sectie ClickOnce van de Gebruikershandleiding voor de Dotfuscator Community voor meer informatie.