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 bildirimlerin üretildikten sonra uygulama dosyalarını değiştirmek daha kolay bir isteğe bağlı bir adım olur. Ancak, imzalı bildirimlerin uygulama yükleyicisi man-in--middle güvenlik saldırıda bozulup 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 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ş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: ClickOnce Uygulaması için Bir Güvenlik Bölgesi Ayarlayın. 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 Ayarla.
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ıkla.
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. Sayfa, imzalama Proje Tasarımcı. Alternatif olarak, yayımlamak sihirbaz kullanarak yayımlama sürecinde bir anahtar dosya ile bildirimleri imzalayabilirsiniz. Ayrıca Windows Software Development Kit (SDK), bildirim imzalamayı sağlayan bir dosya imzalama aracı (SignTool.exe (oturum araç)) içerir.
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ştirir.
ClickOnceasp desteklemez.Kalıcı tanımlama bilgileri kullanması nedeniyle form tabanlı kimlik doğrulamasını net; Internet Explorer önbellekte bulunan ve korsan saldırısı çünkü bu bir güvenlik riski sunar. Bu nedenle, dağıtım yapıyorsanız, ClickOnce uygulamaları, hiçbir kimlik doğrulaması Windows kimlik doğrulaması yanı sıra senaryodur desteklenmeyen.
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 bilgilerini çevrimiçi ClickOnce uygulama.
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.
Dotfuscator kullanarak gizlemeyi yapın.
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üzenlemek araç) ve MageUI.exe (bildirim oluşturma ve Düzenlemek araç, grafik istemci).
El ile dosyaları dağıtım kaynağı konumuna (Web sunucusu, UNC paylaşımı veya CD-ROM) yayımlayın. (Kopyalayın.)