Share via


ClickOnce Uygulamaları Güvenliğini Sağlama

ClickOnce uygulamaları, korumalı kaynakları ve işlemlere sahip olan kodun erişimini sınırlamaya yardım etmek için kod erişim güvenliği sınırlamalarına tabidir. Bu nedenle, kod erişim güvenliği etkilerini anlamanız ve buna göre ClickOnce uygulamaları yazmanız önemlidir. Uygulamalarınız erişim için Internet ve Intranet gibi tam güven veya kısmi bölgeler kullanabilir.

Ayrıca ClickOnce, uygulama yayımcısının özgünlüğünü doğrulamak ve dosyaların karışmadığını ispatlamak üzere dağıtım bildirimleri ve uygulamayı imzalamak için sertifikalar kullanır. İmzalama kolaylaştırır bildirimlerin üretildikten sonra uygulama dosyalarını değiştirmek isteğe bağlı bir adım olur. Ancak, imzalı bildirimlerin uygulama yükleyicisi man-in--middle güvenlik saldırılarından oynama değil emin olmak zordur. Bu nedenle, uygulamanızı imzalama ve uygulamalarınızın güvenliğini sağlamak için dağıtım bildirimler öneririz.

Bölgeler

ClickOnce teknolojisini kullanarak dağıtılmış uygulamalar güvenlik bölgesi tarafından tanımlanan bir eylemler ve izinler kümesi ile kısıtlanır. Güvenlik bölgeleri, Internet Explorer'da tanımlanmış ve uygulamanın konumunu temel alır. Aşağıdaki tablo dağıtım konumunu temel alan varsayılan izinleri listeler:

Dağıtım konum

Güvenlik Bölgesi

Web'den çalıştırın

Internet Bölgesi

Web'den yükleyin

Internet Bölgesi

Ağ dosya paylaşımından yükleyin

Yerel Intranet bölgesi

CD-ROM'dan yükleyin

Tam Güven

Varsayılan izinler uygulamanın özgün sürümüyle dağıtılan konumu temel alır; uygulama güncelleştirmeleri de bu izinleri devralır. Uygulama Web veya ağ konumundan güncelleştirmeleri denetlemek için yapılandırılmış ve daha yeni bir sürüm varsa, özgün yükleme tam güven izinleri yerine Internet ve Intranet bölgesi için izinleri alabilir. Kullanıcıların uyarılmasını önlemek için, Sistem Yöneticisi belirli bir uygulama yayımcısını güvenilir kaynak olarak tanımlayan bir ClickOnce dağıtım ilkesi belirtebilir. Bu ilkenin dağıtılmış olduğu bilgisayarlar için, izinler otomatik olarak verilecek ve kullanıcı uyarılmayacaktır. Daha fazla bilgi için bkz. Güvenilir Uygulama Dağıtımına Genel Bakış. Güvenilir uygulama dağıtımını yapılandırmak için, sertifika makine veya kuruluş düzeyinde yüklenebilir. Daha fazla bilgi için bkz. Nasıl yapılır: ClickOnce uygulamalar için bir istemci bilgisayara güvenilir yayımcı ekleme.

Kod Erişim Güvenliği İlkeleri

Bir uygulama için izinler, uygulama bildiriminin <trustInfo> Öğesi (ClickOnce Uygulaması) öğesi içinde yer alan ayarlar tarafından belirlenir. Visual Studio, projenin Güvenlik özelliği sayfasında yer alan ayarlara dayanarak bu bilgiyi otomatik olarak oluşturur. ClickOnce uygulamasına sadece istediği özel izinler verilir. Örneğin, dosya erişiminin tam güven izinlerini gerektirdiği yerde uygulama tam güven izinleri isterse, uygulamaya tam güven izinleri değil de sadece dosya erişim izni verilir. ClickOnce uygulamanızı geliştirirken, sadece uygulamanın ihtiyacı olan özel izinleri istediğinizden emin olmalısınız. Çoğu durumda, uygulamanızı kısmi izne sınırlamak için Internet veya Yerel Intranet bölgesini kullanabilirsiniz. Daha fazla bilgi için bkz. Nasıl yapılır: bir güvenlik bölgesi için ClickOnce uygulama ayarlama. Uygulamanız özel izinleri gerektiriyorsa, özel bir bölge oluşturabilirsiniz. Daha fazla bilgi için bkz. Nasıl yapılır: ClickOnce uygulama için özel izinleri ayarlama.

Uygulamanın dağıtıldığı bölge için varsayılan izin kümesinin parçası olmayan bir izni dahil etme, son kullanıcının güncelleme ve yükleme zamanında iznin verilmesi için uyarılmasına sebep olur. Kullanıcıların uyarılmasını önlemek için, Sistem Yöneticisi belirli bir uygulama yayımcısını güvenilir kaynak olarak tanımlayan bir ClickOnce dağıtım ilkesi belirtebilir. Bu ilkenin dağıtılmış olduğu bilgisayarlar üzerinde, izinler otomatik olarak verilecek ve kullanıcı uyarılmayacaktır.

Geliştirici olarak, uygulamanızın uygun izinlerle çalıştığından emin olmak sizin sorumluluğunuzdur. Uygulama çalışma zamanı sırasında bir bölge dışında izinler isterse, güvenlik özel durumu ortaya çıkabilir. Visual Studio, hedef güvenlik bölgesinde uygulama hatalarını ayıklamanızı sağlar ve güvenli uygulamalar geliştirme üzerine yardım sağlar. Daha fazla bilgi için bkz. Nasıl yapılır: kısıtlı izinlerle ClickOnce uygulama hata ayıklama.

Kod erişim güvenliği ve ClickOnce hakkında daha fazla bilgi için, bkz. ClickOnce Uygulamaları İçin Kod Erişimi Güvenliği.

Kod İmzalama Sertifikası

ClickOnce dağıtımı kullanarak bir uygulama yayımlamak üzere, ortak/özel bir anahtar çifti kullanarak uygulama için uygulama ve dağıtım bildirimlerini imzalayabilirsiniz. Bildirimi imzalamak için gerekli araçlara Proje Tasarımcısı'nın Signing (İmzala) sayfasında ulaşabilirsiniz. Daha fazla bilgi için bkz. İmza sayfası, proje Tasarımcısı. Alternatif olarak, Publish Wizard kullanarak yayımlama sürecinde bir anahtar dosya ile bildirimleri imzalayabilirsiniz.

Bildirimler imzalandıktan sonra, Authenticode imzasına bağlı yayımcı bilgisi uygulamanın güvenilir bir kaynaktan olduğunu kullanıcıya göstermek için izinler iletişim kutusunda gösterilir.

Sertifikalar ve ClickOnce hakkında daha fazla bilgi için, bkz. ClickOnce ve Authenticode

ASP.NET Form Tabanlı Kimlik Doğrulaması

Her kullanıcının hangi dağıtımlara erişebileceğini denetlemek istiyorsanız, Web sunucusu üzerinde dağıtılan ClickOnce uygulamaları için anonim erişimi etkinleştirmemeniz gerekir. Bunun yerine, kullanıcıların erişim Windows kimlik doğrulaması kullanan kullanıcının kimliğine göre yüklediğiniz dağıtımları etkinleştirmeyi tercih.

ClickOnceasp desteklemez.Kalıcı tanımlama bilgileri kullandığından, form tabanlı kimlik doğrulamasını net; Internet Explorer önbellek içinde bulunan ve korsan saldırısı çünkü bu bir güvenlik riski sunar. Bu nedenle, dağıtım yapıyorsanız, ClickOnce uygulamalar, Windows kimlik doğrulaması yanı sıra herhangi bir kimlik doğrulama senaryosu desteklenmiyor.

Bağımsız Değişkenleri Geçirme

Ek olarak dikkate almanız gereken bir güvenlik durumu da ClickOnce uygulamasına bağımsız değişkenler geçirmek zorunda olduğunuzda oluşur. ClickOnce, Web üzerinden dağıtılan uygulamara sağlamak üzere bir sorgu dizesi olanağı sunar. Sorgu dizesi, uygulamayı başlatmak için kullanılan URL'nin sonunda bir dizi ad-değer çiftleri şeklini alır:

http://servername.adatum.com/WindowsApp1.application?username=joeuser

Varsayılan olarak, sorgu dizesi bağımsız değişkenleri devre dışıdır. Bunları etkinleştirmek için, trustUrlParameters özniteliği uygulamanın dağıtım bildiriminde ayarlanmalıdır. Bu değer Visual Studio'dan veya MageUI.exe'den ayarlanabilir. Sorgu dizeleri geçirmenin nasıl etkinleştirileceği üzerine daha fazla bilgi için, bkz. Nasıl yapılır: sorgu dizesi bir çevrimiçi ClickOnce uygulama bilgilerini almak.

Bir komut satırı veya veritabanı için olan sorgu dizesi aracılığıyla elde edilen bağımsız değişkenleri güvenli oldukları konusunda emin olmadan geçirmeyin. Güvenli olmayan bağımsız değişkenler rasgele komutları çalıştırarak uygulamanızı yönetmek için kötü amaçlı kullanıcılara izin verebilecek veritabanı ve komut satırı kaçış karakterlerini içeren dizelerdir.

Not

Sorgu dizesi bağımsız değişkenleri ClickOnce uygulamasına başlangıçta bağımsız değişken geçirmenin tek yoludur.ClickOnce uygulamasına komut satırından bağımsız değişken geçiremezsiniz.

Gizlenmiş (Obfuscated) Derlemeleri Dağıtma

Başkaları tarafından kod üzerine tersine mühendislik yapılmasını engellemek için Dotfuscator kullanarak uygulamanızı gizleyebilirsiniz. Bunun yanında, derleme gizleme Visual Studio IDE veya ClickOnce dağıtım sürecine tümleşikleştirilmemiştir. Bu nedenle, gizleme işlemini dağıtım sürecinin dışında belki bir bağlama sonrası adımı kullanarak gerçekleştirebilirsiniz. Projeyi derledikten sonra, aşağıdaki adımları Visual Studio'nun dışında el ile gerçekleştirmelisiniz.

  1. Dotfuscator kullanarak gizlemeyi yapın.

  2. ClickOnce bildirimleri oluşturmak ve bunları imzalamak için Mage.exe veya MagUI.exe kullanın. Daha fazla bilgi için, bkz:Mage.exe (bildirim oluşturma ve düzenleme aracı) ve MageUI.exe (bildirim oluşturma ve düzenleme aracı, grafiksel istemci).

  3. El ile dosyaları dağıtım kaynağı konumuna (Web sunucusu, UNC paylaşımı veya CD-ROM) yayımlayın. (Kopyalayın.)

Ayrıca bkz.

Kavramlar

ClickOnce Güvenliği ve Dağıtımı

Dağıtım Stratejisini Seçme

Bir ClickOnce Dağıtım Stratejisi Seçme