Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aplikace ClickOnce podléhají omezením zabezpečení přístupu kódu v rozhraní .NET Framework, která pomáhají omezit přístup, který má kód k chráněným prostředkům a operacím. Z tohoto důvodu je důležité pochopit důsledky zabezpečení přístupu kódu k zápisu aplikací ClickOnce odpovídajícím způsobem. Vaše aplikace můžou k omezení přístupu používat úplnou důvěryhodnost nebo používat částečné zóny, například zóny Internetu a intranetu.
Kromě toho ClickOnce používá certifikáty k ověření pravosti vydavatele aplikace a podepsání manifestů aplikace a nasazení k prokázání, že soubory nebyly manipulovány. Podepisování je volitelný krok, který usnadňuje změnu souborů aplikace po vygenerování manifestů. Bez podepsaných manifestů je ale obtížné zajistit, aby instalační program aplikace nebyl manipulován během bezpečnostních útoků typu man-in-the-middle. Z tohoto důvodu doporučujeme podepsat manifesty aplikace a nasazení, které vám pomůžou zabezpečit vaše aplikace.
Zóny
Aplikace nasazené pomocí technologie ClickOnce jsou omezené na sadu oprávnění a akcí definovaných zónou zabezpečení. Zóny zabezpečení se definují v prohlížeči a jsou založené na umístění aplikace. Následující tabulka uvádí výchozí oprávnění na základě umístění nasazení:
| Umístění nasazení | Zóna zabezpečení |
|---|---|
| Spustit z webu | Zóna internetu |
| Instalace z webu | Zóna internetu |
| Instalace ze sdílené síťové složky | Zóna místního intranetu |
| Instalace z CD-ROM | Plná důvěra |
Výchozí oprávnění jsou založená na umístění, ze kterého byla nasazena původní verze aplikace; aktualizace aplikace zdědí tato oprávnění. Pokud je aplikace nakonfigurovaná tak, aby kontrolovala aktualizace z webového nebo síťového umístění a je k dispozici novější verze, může původní instalace místo úplných oprávnění důvěryhodnosti přijímat oprávnění pro zónu Internetu nebo intranetu. Pokud chcete uživatelům zabránit v zobrazení výzvy, může správce systému zadat zásady nasazení ClickOnce, které definují konkrétního vydavatele aplikace jako důvěryhodný zdroj. U počítačů, na kterých je tato zásada nasazená, se oprávnění udělí automaticky a uživateli se nezobrazí výzva. Další informace naleznete v tématu Přehled nasazení důvěryhodné aplikace. Pokud chcete nakonfigurovat nasazení důvěryhodné aplikace, můžete certifikát nainstalovat na úroveň počítače nebo podniku. Další informace naleznete v tématu Postupy: Přidání důvěryhodného vydavatele do klientského počítače pro aplikace ClickOnce.
Poznámka:
V ClickOnce pro .NET Core a .NET 5 nebo novější není tato funkce podporována. Další informace naleznete v tématu ClickOnce pro .NET.
Zásady zabezpečení přístupu kódu
Oprávnění pro aplikaci jsou určena nastavením v elementu trustInfo v manifestu aplikace. Visual Studio tyto informace automaticky vygeneruje na základě nastavení na stránce vlastností zabezpečení projektu. Aplikace ClickOnce má udělená pouze konkrétní oprávnění, která požaduje. Pokud například přístup k souborům vyžaduje oprávnění s úplným vztahem důvěryhodnosti, pokud aplikace požaduje oprávnění pro přístup k souborům, bude udělena pouze oprávnění pro přístup k souborům, nikoli oprávnění s úplným vztahem důvěryhodnosti. Při vývoji aplikace ClickOnce byste měli zajistit, že požadujete pouze konkrétní oprávnění, která aplikace potřebuje. Ve většině případů můžete pomocí zón Internetu nebo místního intranetu omezit aplikaci na částečnou důvěryhodnost. Další informace naleznete v tématu Postupy: Nastavení zóny zabezpečení pro aplikaci ClickOnce. Pokud vaše aplikace vyžaduje vlastní oprávnění, můžete vytvořit vlastní zónu. Další informace naleznete v tématu Postupy: Nastavení vlastních oprávnění pro aplikaci ClickOnce.
Poznámka:
V ClickOnce pro .NET Core a .NET 5 nebo novější není zabezpečení přístupu kódu podporováno. V rozhraní .NET Framework není použití zabezpečení přístupu kódu osvědčeným postupem a nedoporučuje se.
Zahrnutí oprávnění, které není součástí výchozí sady oprávnění pro zónu, ze které je aplikace nasazená, způsobí, že se koncovému uživateli zobrazí výzva k udělení oprávnění v době instalace nebo aktualizace. Pokud chcete uživatelům zabránit v zobrazení výzvy, může správce systému zadat zásady nasazení ClickOnce, které definují konkrétního vydavatele aplikace jako důvěryhodný zdroj. Na počítačích, kde je tato zásada nasazená, se oprávnění automaticky udělí a uživateli se nezobrazí výzva.
Jako vývojář je vaší zodpovědností zajistit, aby vaše aplikace běžela s odpovídajícími oprávněními. Pokud aplikace během běhu požádá o oprávnění mimo zónu, může se zobrazit výjimka zabezpečení. Visual Studio umožňuje ladit aplikaci v cílové zóně zabezpečení a poskytuje pomoc při vývoji zabezpečených aplikací. Další informace naleznete v tématu Ladění aplikací ClickOnce, které používají System.Deployment.Application.
Další informace o zabezpečení přístupu kódu a ClickOnce naleznete v tématu Zabezpečení přístupu kódu pro aplikace ClickOnce.
Certifikáty pro podepisování kódu
Pokud chcete publikovat aplikaci pomocí nasazení ClickOnce, můžete podepsat manifesty aplikace a nasazení aplikace pomocí páru veřejného a privátního klíče. Nástroje pro podepsání manifestu jsou k dispozici na stránce Podepisovánínávrháře projektu. Další informace viz Podpisová stránka, Návrhář projektu.
Po podepsání manifestů se uživateli v dialogovém okně oprávnění zobrazí informace o vydavateli založené na podpisu Authenticode, aby se uživateli zobrazilo, že aplikace pochází z důvěryhodného zdroje.
Další informace o ClickOnce a certifikáty naleznete v tématu ClickOnce a Authenticode.
ověřování na základě formuláře ASP.NET
Pokud chcete řídit, ke kterým nasazením má každý uživatel přístup, neměli byste povolit anonymní přístup k aplikacím ClickOnce nasazeným na webovém serveru. Místo toho byste uživatelům umožnili přístup k nainstalovaným nasazením na základě identity uživatele pomocí ověřování systému Windows.
ClickOnce nepodporuje ověřování pomocí formulářů ASP.NET, protože používá trvalé soubory cookie; představují bezpečnostní riziko, protože se nacházejí v mezipaměti prohlížeče a mohou být hacknuty. Proto pokud nasazujete aplikace ClickOnce, nepodporuje se jakýkoli scénář ověřování kromě ověřování systému Windows.
Předání argumentů
K dalšímu posouzení zabezpečení dochází v případě, že potřebujete předat argumenty do aplikace ClickOnce. ClickOnce umožňuje vývojářům zadat řetězec dotazu aplikacím nasazeným přes web. Řetězec dotazu má formu řady párů name-value na konci adresy URL použité k spuštění aplikace:
http://servername.adatum.com/WindowsApp1.application?username=joeuser
Ve výchozím nastavení jsou argumenty řetězce dotazu zakázané. Pokud je chcete povolit, musí být atribut trustUrlParameters nastaven v manifestu nasazení aplikace. Tuto hodnotu lze nastavit ze sady Visual Studio a z MageUI.exe. Podrobný postup povolení předávání řetězců dotazů najdete v tématu Postupy: Načtení informací o řetězci dotazu v online aplikaci ClickOnce.
Nikdy byste neměli předávat argumenty načtené prostřednictvím řetězce dotazu do databáze nebo příkazového řádku bez kontroly argumentů, abyste měli jistotu, že jsou bezpečné. Nebezpečné argumenty jsou ty, které obsahují řídicí znaky databáze nebo příkazového řádku, které by mohly umožnit škodlivému uživateli manipulovat s aplikací a provádět libovolné příkazy.
Poznámka:
Argumenty řetězce dotazu představují jediný způsob, jak při spuštění předat argumenty aplikaci ClickOnce. Argumenty nelze předat aplikaci ClickOnce z příkazového řádku.
Nasazení obfuskovaných sestavení
Visual Studio obsahuje bezplatnou ochranu PreEmptive Protection – Dotfuscator Community, kterou můžete použít k ochraně aplikací ClickOnce prostřednictvím obfuskace kódu a aktivních ochranných opatření. Podrobnosti najdete v části ClickOnce uživatelské příručky komunity Dotfuscator.