Bagikan melalui


Keamanan akses kode untuk aplikasi ClickOnce

Aplikasi ClickOnce didasarkan pada .NET Framework dan tunduk pada batasan keamanan akses kode. Untuk alasan ini, penting bagi Anda untuk memahami implikasi keamanan akses kode dan menulis aplikasi ClickOnce Anda yang sesuai.

Keamanan akses kode adalah mekanisme dalam .NET Framework yang membantu membatasi akses yang dimiliki kode untuk sumber daya dan operasi yang dilindungi. Anda harus mengonfigurasi izin keamanan akses kode untuk aplikasi ClickOnce Anda untuk menggunakan zona yang sesuai untuk lokasi penginstal aplikasi. Dalam kebanyakan kasus, Anda dapat memilih zona Internet untuk sekumpulan izin terbatas atau zona Intranet Lokal untuk serangkaian izin yang lebih besar.

Catatan

Di ClickOnce untuk .NET Core dan .NET 5 atau yang lebih baru, fitur ini tidak didukung. Untuk informasi selengkapnya, lihat ClickOnce untuk .NET.

Keamanan akses kode ClickOnce default

Secara default, aplikasi ClickOnce menerima izin Kepercayaan Penuh saat diinstal atau dijalankan di komputer klien.

  • Aplikasi yang memiliki izin Kepercayaan Penuh memiliki akses tak terbatas ke sumber daya seperti sistem file dan registri. Ini berpotensi memungkinkan aplikasi Anda (dan sistem pengguna akhir) dieksploitasi oleh kode berbahaya.

  • Ketika aplikasi memerlukan izin Kepercayaan Penuh, pengguna akhir mungkin diminta untuk memberikan izin ke aplikasi. Ini berarti bahwa aplikasi tidak benar-benar memberikan pengalaman ClickOnce, dan permintaan tersebut berpotensi membingungkan pengguna yang kurang berpengalaman.

    Catatan

    Saat menginstal aplikasi dari media yang dapat dilepas seperti CD-ROM, pengguna tidak diminta. Selain itu, administrator jaringan dapat mengonfigurasi kebijakan jaringan sehingga pengguna tidak diminta saat mereka menginstal aplikasi dari sumber tepercaya. Untuk informasi selengkapnya, lihat Ringkasan penyebaran aplikasi tepercaya.

    Untuk membatasi izin untuk aplikasi ClickOnce, Anda dapat mengubah izin keamanan akses kode untuk aplikasi Anda untuk meminta zona yang paling sesuai dengan izin yang diperlukan aplikasi Anda. Dalam kebanyakan kasus, Anda dapat memilih zona tempat aplikasi disebarkan. Misalnya, jika aplikasi Anda adalah aplikasi perusahaan, Anda dapat menggunakan zona Intranet Lokal. Jika aplikasi Anda adalah aplikasi internet, Anda dapat menggunakan zona Internet .

Mengonfigurasi izin keamanan

Anda harus selalu mengonfigurasi aplikasi ClickOnce anda untuk meminta zona yang sesuai untuk membatasi izin keamanan akses kode. Anda dapat mengonfigurasi izin keamanan di halaman Keamanan Perancang Proyek.

Halaman Keamanan di Perancang Proyek berisi kotak centang Aktifkan Keamanan ClickOnce Pengaturan. Saat kotak centang ini dipilih, permintaan izin keamanan ditambahkan ke manifes penyebaran untuk aplikasi Anda. Pada waktu penginstalan, pengguna akan diminta untuk memberikan izin jika izin yang diminta melebihi izin default untuk zona tempat aplikasi disebarkan. Untuk informasi selengkapnya, lihat Cara: Mengaktifkan pengaturan keamanan ClickOnce.

Aplikasi yang disebarkan dari lokasi yang berbeda diberikan tingkat izin yang berbeda tanpa meminta. Misalnya, ketika aplikasi disebarkan dari Internet, aplikasi menerima serangkaian izin yang sangat ketat. Ketika diinstal dari Intranet lokal, ia menerima lebih banyak izin, dan ketika diinstal dari CD-ROM, ia menerima izin Kepercayaan Penuh.

Sebagai titik awal untuk mengonfigurasi izin, Anda dapat memilih zona keamanan dari daftar Zona di halaman Keamanan . Jika aplikasi Anda berpotensi akan disebarkan dari lebih dari satu zona, pilih zona dengan izin paling sedikit. Untuk informasi selengkapnya, lihat Cara: Mengatur zona keamanan untuk aplikasi ClickOnce.

Properti yang dapat diatur bervariasi menurut set izin; tidak semua set izin memiliki properti yang dapat dikonfigurasi. Untuk informasi selengkapnya tentang daftar lengkap izin yang dapat diminta aplikasi Anda, lihat System.Security.Permissions. Untuk informasi selengkapnya tentang cara mengatur izin untuk zona kustom, lihat Cara: Mengatur izin kustom untuk aplikasi ClickOnce.

Men-debug aplikasi yang memiliki izin terbatas

Sebagai pengembang, Anda kemungkinan besar menjalankan komputer pengembangan anda dengan izin Kepercayaan Penuh. Oleh karena itu, Anda tidak melihat pengecualian keamanan yang sama saat Anda men-debug aplikasi yang mungkin dilihat pengguna saat mereka menjalankannya dengan izin terbatas.

Untuk menangkap pengecualian ini, Anda harus men-debug aplikasi dengan izin yang sama dengan pengguna akhir. Penelusuran kesalahan dengan izin terbatas dapat diaktifkan di halaman Keamanan Perancang Proyek.

Saat Anda men-debug aplikasi dengan izin terbatas, pengecualian akan dinaikkan untuk permintaan keamanan kode apa pun yang belum diaktifkan di halaman Keamanan . Pembantu pengecualian akan muncul, memberikan saran tentang cara memodifikasi kode Anda untuk mencegah pengecualian.

Selain itu, ketika Anda menulis kode, fitur IntelliSense di Editor Kode akan menonaktifkan anggota apa pun yang tidak termasuk dalam izin keamanan yang telah Anda konfigurasi.

Untuk informasi selengkapnya, lihat Cara: Men-debug Aplikasi ClickOnce dengan Izin Terbatas.

Izin keamanan untuk aplikasi yang dihosting browser

Visual Studio menyediakan jenis proyek berikut untuk aplikasi Windows Presentation Foundation (WPF):

  • Aplikasi Windows WPF

  • Aplikasi Browser Web WPF

  • Pustaka Kontrol Kustom WPF

  • Pustaka Layanan WPF

    Dari jenis proyek ini, hanya Aplikasi Browser Web WPF yang dihosting di browser Web dan oleh karena itu memerlukan penyebaran khusus dan pengaturan keamanan. Pengaturan keamanan default untuk aplikasi ini adalah sebagai berikut:

  • Mengaktifkan Pengaturan Keamanan ClickOnce

  • Ini adalah aplikasi kepercayaan parsial

  • Zona Internet (dengan izin default yang ditetapkan untuk Aplikasi Browser Web WPF dipilih)

    Dalam kotak dialog Pengaturan Keamanan Tingkat Lanjut, kotak centang Debug aplikasi ini dengan kumpulan izin yang dipilih dipilih dan dinonaktifkan. Ini karena Debug Dalam Zona tidak dapat dinonaktifkan untuk aplikasi yang dihosting browser.