Aracılığıyla paylaş


ClickOnce Uygulamalarının 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 .NET Framework 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 isteğe bağlı bir adımdır; bu, bildirimler üretildikten sonra uygulama dosyalarını değiştirmeyi kolaylaştırır.Ancak, imzalı bildirimler olmadan, uygulama yükleyicisinin ortadaki adam güvenlik saldırılarında müdahaleye uğramadığından olmak zordur.Bu nedenle, uygulamalarınızı güvenlik altına almak için uygulama ve dağıtım bildirimlerinizi imzalamanızı ö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 Konumu

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 Sunucu 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ştirilirken, yalnızca uygulamanız için gereken belirli izinleri istediğinizden emin olmalısınız.Çoğu durumda, uygulamanızı kısmi güvenle sınırlamak için Internet veya yerel Intranet bölgelerini kullanabilirsiniz.Daha fazla bilgi için bkz. Nasıl yapılır: ClickOnce Uygulaması için Bir Güvenlik Bölgesi Ayarlama.Uygulamanız özel izinleri gerektiriyorsa, özel bir bölge oluşturabilirsiniz.Daha fazla bilgi için bkz. Nasıl yapılır: ClickOnce Uygulaması için Özel İzinleri 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: Sınırlı İzinler ile ClickOnce Uygulamasında 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 Sertifikaları

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. İmzalama 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.Alternatif olarak, kullanıcı erişimini bir kullanıcı kimliği üzerinde yüklenmiş dağıtımlar için, Windows kimlik doğrulaması kullanarak etkinleştirebilirsiniz.

ClickOnce ASP.NET formu tabanlı kimlik doğrulamasını desteklemez çünkü kalıcı tanımlama bilgileri kullanır; bunlar Internet Explorer önbelleğinde bulunduğu ve korsan saldırıya uğrayabileceği için bu bir güvenlik riski ortaya çıkarır.Bu nedenle ClickOnce uygulamaları dağıtıyorsanız, Windows kimlik doğrulaması dışındaki senaryolar desteklenmez.

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 uygulamalara 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: Çevrimiçi bir ClickOnce Uygulamasında Sorgu Dize Bilgilerini Alma.

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 Üretme ve Düzenleme Aracı) ve MageUI.exe (Bildirim Üretme ve Düzenleme Aracı, Grafik İstemci).

  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ı

ClickOnce Dağıtım Stratejisini Seçme