Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
ASP.NET Core memungkinkan pengembang untuk mengkonfigurasi dan mengelola keamanan. Daftar berikut ini menyediakan tautan ke artikel tentang bekerja dengan keamanan di ASP.NET Core:
- Autentikasi
- Otorisasi
- Perlindungan data
- Penegakan HTTPS
- Penyimpanan rahasia aplikasi yang aman dalam pengembangan
- Pencegahan XSRF/ CSRF
- Berbagi Sumber Daya Lintas Asal (CORS)
- Serangan Skrip Lintas Situs (XSS)
Fitur keamanan ini memungkinkan Anda membuat aplikasi ASP.NET Core yang kuat dan aman.
Untuk Blazor cakupan keamanan, yang melengkapi atau menggantikan panduan di node ini, lihat autentikasi dan otorisasi ASP.NET Core Blazor serta artikel lainnya di node Keamanan dan Identity milik Blazor.
Fitur keamanan ASP.NET Core
ASP.NET Core menyediakan banyak alat dan pustaka untuk mengamankan aplikasi ASP.NET Core, seperti penyedia identitas bawaan dan layanan identitas non-Microsoft seperti Facebook, Twitter, dan LinkedIn. ASP.NET Core menyediakan beberapa pendekatan untuk menyimpan rahasia aplikasi.
Autentikasi vs. Otorisasi
Autentikasi adalah proses di mana pengguna menyediakan kredensial yang dibandingkan dengan kredensial yang disimpan dalam sistem operasi, database, aplikasi, atau sumber daya. Ketika dua set kredensial cocok, pengguna berhasil mengautentikasi. Mereka kemudian dapat melakukan tindakan yang diotorisasi. Proses otorisasi menentukan tindakan yang diizinkan pengguna untuk dilakukan.
Cara lain untuk memikirkan autentikasi adalah dengan mempertimbangkannya sebagai cara untuk memasukkan ruang, di mana ruang tersebut adalah server, database, aplikasi, atau sumber daya. Otorisasi menentukan tindakan apa yang dapat dilakukan pengguna ke objek mana di dalam ruang tersebut (server, database, atau aplikasi).
Kerentanan umum dalam perangkat lunak
ASP.NET Core dan Entity Framework berisi fitur yang membantu Anda mengamankan aplikasi dan mencegah pelanggaran keamanan. Daftar tautan berikut membawa Anda ke teknik perincian dokumentasi untuk menghindari kerentanan keamanan paling umum di aplikasi web:
- Serangan Skrip Lintas Situs (XSS)
- kueri SQL > serangan injeksi SQL
- Serangan Pemalsuan Permintaan Antar Situs (XSRF/CSRF)
- Serangan pengalihan terbuka
Ada lebih banyak kerentanan yang harus Anda waspadai. Untuk informasi lebih lanjut, lihat artikel lainnya di bagian Keamanan dan Identity dari daftar isi.
Alur autentikasi aman
Sebaiknya gunakan opsi autentikasi yang paling aman. Untuk layanan Azure, autentikasi yang paling aman adalah identitas terkelola.
Hindari menggunakan pemberian Info Masuk Kata Sandi Pemilik Sumber Daya (ROPG):
- Ini mengekspos kata sandi pengguna ke klien.
- Ini adalah risiko keamanan yang signifikan.
- Gunakan hanya jika alur autentikasi lain tidak dimungkinkan.
Identitas terkelola adalah cara aman untuk mengautentikasi ke layanan tanpa perlu menyimpan kredensial dalam kode, variabel lingkungan, atau file konfigurasi. Identitas terkelola tersedia untuk layanan Azure, dan dapat digunakan dengan Azure SQL, Azure Storage, dan layanan Azure lainnya:
- Identitas terkelola di Microsoft Entra untuk Azure SQL
- Identitas terkelola untuk App Service dan Azure Functions
- Alur autentikasi aman
Saat aplikasi disebarkan ke server pengujian, variabel lingkungan dapat digunakan untuk mengatur string koneksi ke server database pengujian. Untuk informasi lebih lanjut, lihat Konfigurasi. Variabel lingkungan umumnya disimpan dalam teks biasa dan tidak terenkripsi. Jika mesin atau proses disusupi, variabel lingkungan mungkin dapat diakses oleh pihak yang tidak tepercaya. Sebaiknya jangan gunakan variabel lingkungan untuk menyimpan string koneksi produksi karena ini bukan pendekatan yang paling aman.
Panduan data konfigurasi:
- Jangan pernah menyimpan kata sandi atau data sensitif lainnya dalam kode penyedia konfigurasi atau dalam file konfigurasi teks biasa. Alat Secret Manager dapat digunakan untuk menyimpan rahasia dalam pengembangan.
- Jangan gunakan rahasia produksi di lingkungan pengembangan atau pengujian.
- Tentukan rahasia di luar proyek sehingga tidak dapat diterapkan secara tidak sengaja ke repositori kode sumber.
Untuk informasi selengkapnya, lihat:
- rekomendasi praktik terbaik identitas terkelola
- Menyambungkan dari aplikasi Anda ke sumber daya tanpa menangani kredensial dalam kode Anda
- Layanan Azure yang dapat menggunakan identitas terkelola untuk mengakses layanan lain
- Praktik Terbaik Keamanan IETF OAuth 2.0 Saat Ini (Bagian 2.4. Pemberian Kredensial Kata Sandi Pemilik Sumber Daya)
Untuk informasi tentang penyedia cloud lainnya, lihat:
- AWS (Amazon Web Services): AWS Key Management Service (KMS)
- Gambaran umum Google Cloud Key Management Service
Pola aplikasi web perusahaan
Untuk panduan tentang membuat aplikasi ASP.NET Core yang andal, aman, berkinerja, dapat diuji, dan dapat diskalakan, lihat pola aplikasi web Enterprise. Aplikasi web sampel kualitas produksi lengkap yang mengimplementasikan pola tersedia.
Konten terkait
ASP.NET Core