Bagikan melalui


Gambaran Umum Keamanan di Formulir Windows

Sebelum rilis .NET Framework, semua kode yang berjalan di komputer pengguna memiliki hak atau izin yang sama untuk mengakses sumber daya yang dimiliki pengguna komputer. Misalnya, jika pengguna diizinkan untuk mengakses sistem file, kode diizinkan untuk mengakses sistem file; jika pengguna diizinkan untuk mengakses database, kode diizinkan untuk mengakses database tersebut. Meskipun hak atau izin ini mungkin dapat diterima untuk kode dalam executable yang telah diinstal pengguna secara eksplisit di komputer lokal, mereka mungkin tidak dapat diterima untuk kode yang berpotensi berbahaya yang berasal dari Internet atau Intranet lokal. Kode ini seharusnya tidak dapat mengakses sumber daya komputer pengguna tanpa izin.

.NET Framework memperkenalkan infrastruktur yang disebut Code Access Security yang memungkinkan Anda membedakan izin, atau hak, kode tersebut memiliki dari hak yang dimiliki pengguna. Secara default, kode yang berasal dari Internet dan Intranet hanya dapat berjalan dalam apa yang dikenal sebagai kepercayaan parsial. Kepercayaan parsial menundukkan aplikasi ke serangkaian pembatasan: antara lain, aplikasi dibatasi untuk mengakses hard disk lokal, dan tidak dapat menjalankan kode yang tidak dikelola. .NET Framework mengontrol sumber daya yang diizinkan untuk diakses kode berdasarkan identitas kode tersebut: dari mana kode tersebut berasal, apakah ia memiliki Rakitan Strong-Named, apakah kode tersebut ditandatangani dengan sertifikat, dan sebagainya.

Teknologi ClickOnce, yang Anda gunakan untuk menyebarkan aplikasi Formulir Windows, membantu mempermudah Anda mengembangkan aplikasi yang berjalan dalam kepercayaan parsial, dalam kepercayaan penuh, atau dalam kepercayaan parsial dengan izin yang ditingkatkan. ClickOnce menyediakan fitur seperti Elevasi Izin dan Penyebaran Aplikasi Tepercaya sehingga aplikasi Anda dapat meminta kepercayaan penuh atau izin yang ditinggikan dari pengguna lokal dengan cara yang bertanggung jawab.

Memahami Keamanan dalam .NET Framework

Keamanan akses kode memungkinkan kode dipercaya ke berbagai derajat, tergantung di mana kode berasal dan pada aspek lain dari identitas kode. Untuk informasi selengkapnya tentang bukti yang digunakan runtime bahasa umum untuk menentukan kebijakan keamanan, lihat Bukti. Ini membantu melindungi sistem komputer dari kode berbahaya dan membantu melindungi kode tepercaya dari keamanan yang sengaja atau tidak sengaja disusupi. Keamanan akses kode juga memberi Anda kontrol lebih atas tindakan apa yang dapat dilakukan aplikasi Anda, karena Anda hanya dapat menentukan izin yang anda butuhkan untuk dimiliki aplikasi Anda. Keamanan akses kode memengaruhi semua kode terkelola yang menargetkan runtime bahasa umum, bahkan jika kode tersebut tidak membuat satu pemeriksaan izin keamanan akses kode. Untuk informasi selengkapnya tentang keamanan di .NET Framework, lihat Konsep Keamanan Utama dan Dasar-Dasar Keamanan Akses Kode.

Jika pengguna menjalankan file Formulir Windows yang dapat dieksekusi langsung dari server Web atau berbagi file, tingkat kepercayaan yang diberikan kepada aplikasi Anda bergantung pada tempat kode berada, dan bagaimana kode dimulai. Saat aplikasi berjalan, aplikasi secara otomatis dievaluasi dan menerima set izin bernama dari runtime bahasa umum. Secara default, kode dari komputer lokal diberikan set izin Kepercayaan Penuh, kode dari jaringan lokal diberikan set izin Intranet Lokal, dan kode dari Internet diberikan set izin Internet.

Catatan

Dalam .NET Framework versi 1.0 Paket Layanan 1 dan Paket Layanan 2, grup kode zona Internet menerima kumpulan izin Tidak ada. Dalam semua rilis lain dari .NET Framework, grup kode zona Internet menerima set izin Internet.

Izin default yang diberikan di setiap set izin ini tercantum dalam topik Kebijakan Keamanan Default. Bergantung pada izin yang diterima aplikasi, aplikasi berjalan dengan benar atau menghasilkan pengecualian keamanan.

Banyak aplikasi Formulir Windows akan disebarkan menggunakan ClickOnce. Alat yang digunakan untuk menghasilkan penyebaran ClickOnce memiliki default keamanan yang berbeda dari yang dibahas sebelumnya. Untuk informasi selengkapnya, lihat diskusi berikut ini.

Izin aktual yang diberikan ke aplikasi Anda dapat berbeda dari nilai default, karena kebijakan keamanan dapat dimodifikasi; ini berarti bahwa aplikasi Anda dapat memiliki izin di satu komputer, tetapi tidak di komputer lain.

Mengembangkan Aplikasi Formulir Windows yang Lebih Aman

Keamanan penting dalam semua langkah pengembangan aplikasi. Mulailah dengan meninjau dan mengikuti Panduan Pengodian Aman.

Selanjutnya, putuskan apakah aplikasi Anda harus berjalan dengan kepercayaan penuh, atau apakah aplikasi harus berjalan dalam kepercayaan parsial. Menjalankan aplikasi Anda dengan kepercayaan penuh membuatnya lebih mudah untuk mengakses sumber daya di komputer lokal, tetapi mengekspos aplikasi Anda dan penggunanya terhadap risiko keamanan tinggi jika Anda tidak merancang dan mengembangkan aplikasi Anda secara ketat sesuai dengan topik Panduan Pengodean Aman. Menjalankan aplikasi Anda dalam kepercayaan parsial memudahkan untuk mengembangkan aplikasi yang lebih aman dan mengurangi banyak risiko, tetapi membutuhkan lebih banyak perencanaan dalam cara menerapkan fitur tertentu.

Jika Anda memilih kepercayaan parsial (yaitu, set izin Internet atau Intranet Lokal), putuskan bagaimana Anda ingin aplikasi Anda berperilaku di lingkungan ini. Formulir Windows menyediakan cara alternatif yang lebih aman untuk menerapkan fitur saat berada di lingkungan semi tepercaya. Bagian tertentu dari aplikasi Anda, seperti akses data, dapat dirancang dan ditulis secara berbeda untuk kepercayaan parsial dan lingkungan kepercayaan penuh. Beberapa fitur Formulir Windows, seperti pengaturan aplikasi, dirancang untuk bekerja dalam kepercayaan parsial. Untuk informasi selengkapnya, lihat Gambaran Umum Pengaturan Aplikasi.

Jika aplikasi Anda membutuhkan lebih banyak izin daripada yang diizinkan kepercayaan parsial, tetapi Anda tidak ingin berjalan dengan kepercayaan penuh, Anda dapat menjalankan kepercayaan parsial sambil menegaskan hanya izin tambahan yang Anda butuhkan. Misalnya, jika Anda ingin menjalankan kepercayaan parsial, tetapi harus memberikan aplikasi Anda akses baca-saja ke direktori pada sistem file pengguna, Anda hanya dapat meminta FileIOPermission direktori tersebut. Digunakan dengan benar, pendekatan ini dapat memberi aplikasi Anda peningkatan fungsionalitas dan meminimalkan risiko keamanan kepada pengguna Anda.

Saat Anda mengembangkan aplikasi yang akan berjalan dalam kepercayaan parsial, lacak izin apa yang harus dijalankan aplikasi Anda dan izin apa yang dapat digunakan aplikasi Anda secara opsional. Ketika semua izin diketahui, Anda harus membuat permintaan deklaratif untuk izin di tingkat aplikasi. Meminta izin menginformasikan run time .NET Framework tentang izin mana yang dibutuhkan aplikasi Anda dan izin mana yang secara khusus tidak diinginkan. Untuk informasi selengkapnya tentang meminta izin, lihat Meminta Izin.

Saat meminta izin opsional, Anda harus menangani pengecualian keamanan yang akan dihasilkan jika aplikasi Anda melakukan tindakan yang memerlukan izin yang tidak diberikan kepadanya. Penanganan yang SecurityException sesuai akan memastikan bahwa aplikasi Anda dapat terus beroperasi. Aplikasi Anda dapat menggunakan pengecualian untuk menentukan apakah fitur harus dinonaktifkan untuk pengguna. Misalnya, aplikasi dapat menonaktifkan opsi menu Simpan jika izin file yang diperlukan tidak diberikan.

Terkadang, sulit untuk mengetahui apakah Anda telah menegaskan semua izin yang sesuai. Panggilan metode yang terlihat tidak berbahaya di permukaan, misalnya, dapat mengakses sistem file di beberapa titik selama eksekusinya. Jika Anda tidak menyebarkan aplikasi dengan semua izin yang diperlukan, aplikasi mungkin menguji dengan baik saat Anda men-debugnya di desktop Anda, tetapi gagal saat disebarkan. Baik .NET Framework 2.0 SDK dan Visual Studio 2005 berisi alat untuk menghitung izin yang dibutuhkan aplikasi: alat baris perintah MT.exe dan fitur Hitung Izin Visual Studio.

Topik berikut menjelaskan fitur keamanan Formulir Windows tambahan.

Topik Deskripsi
- Akses File dan Data yang Lebih Aman di Formulir Windows Menjelaskan cara mengakses file dan data di lingkungan kepercayaan parsial.
- Pencetakan yang Lebih Aman di Formulir Windows Menjelaskan cara mengakses fitur pencetakan di lingkungan kepercayaan parsial.
- Pertimbangan Keamanan Tambahan di Formulir Windows Menjelaskan melakukan manipulasi jendela, menggunakan Clipboard, dan melakukan panggilan ke kode yang tidak dikelola di lingkungan kepercayaan parsial.

Menyebarkan Aplikasi dengan Izin yang Sesuai

Cara paling umum untuk menyebarkan aplikasi Formulir Windows ke komputer klien adalah dengan ClickOnce, teknologi penyebaran yang menjelaskan semua komponen yang perlu dijalankan aplikasi Anda. ClickOnce menggunakan file XML yang disebut manifes untuk menjelaskan rakitan dan file yang membentuk aplikasi Anda, dan juga izin yang diperlukan aplikasi Anda.

ClickOnce memiliki dua teknologi untuk meminta izin yang ditingkatkan pada komputer klien. Kedua teknologi mengandalkan penggunaan sertifikat Authenticode. Sertifikat membantu memberikan beberapa jaminan kepada pengguna Anda bahwa aplikasi telah berasal dari sumber tepercaya.

Tabel berikut menjelaskan teknologi ini.

Teknologi izin yang ditingkatkan Deskripsi
Elevasi Izin Meminta pengguna dengan kotak dialog keamanan saat pertama kali aplikasi Anda berjalan. Kotak dialog Elevasi Izin memberi tahu pengguna tentang siapa yang menerbitkan aplikasi, sehingga pengguna dapat membuat keputusan berdasarkan informasi tentang apakah akan memberinya kepercayaan tambahan
Penyebaran Aplikasi Tepercaya Melibatkan administrator sistem yang melakukan penginstalan satu kali sertifikat Authenticode penerbit di komputer klien. Sejak saat itu, aplikasi apa pun yang ditandatangani dengan sertifikat dianggap sebagai tepercaya, dan dapat berjalan dengan kepercayaan penuh pada komputer lokal tanpa permintaan tambahan.

Teknologi mana yang Anda pilih akan bergantung pada lingkungan penyebaran Anda. Untuk informasi selengkapnya, lihat Memilih Strategi Penyebaran ClickOnce.

Secara default, aplikasi ClickOnce yang disebarkan menggunakan Visual Studio atau alat .NET Framework SDK (Mage.exe dan MageUI.exe) dikonfigurasi untuk berjalan pada komputer klien yang memiliki Kepercayaan Penuh. Jika Anda menyebarkan aplikasi dengan menggunakan kepercayaan parsial atau dengan hanya menggunakan beberapa izin tambahan, Anda harus mengubah default ini. Anda dapat melakukan ini dengan Visual Studio atau alat .NET Framework SDK MageUI.exe saat mengonfigurasi penyebaran. Untuk informasi selengkapnya tentang cara menggunakan MageUI.exe, lihat Panduan: Menyebarkan aplikasi ClickOnce secara manual. Lihat juga Cara: Mengatur Izin Kustom untuk Aplikasi ClickOnce atau Cara: Mengatur Izin Kustom untuk Aplikasi ClickOnce.

Untuk informasi selengkapnya tentang aspek keamanan ClickOnce dan Elevasi Izin, lihat Mengamankan Aplikasi ClickOnce. Untuk informasi selengkapnya tentang Penyebaran Aplikasi Tepercaya, lihat Gambaran Umum Penyebaran Aplikasi Tepercaya.

Menguji Aplikasi

Jika Anda telah menyebarkan aplikasi Formulir Windows dengan menggunakan Visual Studio, Anda dapat mengaktifkan penelusuran kesalahan dalam kepercayaan parsial atau izin terbatas yang ditetapkan dari lingkungan pengembangan. Lihat juga Cara: Men-debug Aplikasi ClickOnce dengan Izin Terbatas.

Baca juga