Topik keamanan ASP.NET Core
ASP.NET Core memungkinkan pengembang untuk mengkonfigurasi dan mengelola keamanan. Daftar berikut menyediakan tautan ke topik keamanan:
- Autentikasi
- Authorization
- Perlindungan data
- Penegakan HTTPS
- Penyimpanan rahasia aplikasi yang aman dalam pengembangan
- Pencegahan XSRF/ CSRF
- Cross Origin Resource Sharing (CORS)
- Serangan Scripting Lintas Situs (XSS)
Fitur keamanan ini memungkinkan Anda membuat aplikasi ASP.NET Core yang kuat dan aman.
Untuk Blazor cakupan keamanan, yang menambahkan atau menggantikan panduan dalam simpul ini, lihat ASP.NET autentikasi dan otorisasi Core Blazor dan artikel lain dalam BlazorKeamanan dan Identity simpul.
Fitur keamanan ASP.NET Core
ASP.NET Core menyediakan banyak alat dan pustaka untuk mengamankan aplikasi ASP.NET Core seperti penyedia bawaan identity dan layanan pihak identity ketiga seperti Facebook, Twitter, dan LinkedIn. ASP.NET Core menyediakan beberapa pendekatan untuk menyimpan rahasia aplikasi.
Autentikasi vs. Otorisasi
Autentikasi adalah proses di mana pengguna memberikan mandat yang kemudian dibandingkan dengan mandat yang disimpan di sistem operasi, database, aplikasi, atau sumber daya. Jika cocok, pengguna berhasil mengautentikasi, dan kemudian dapat melakukan tindakan yang mereka otorisasi, selama proses otorisasi. Otorisasi mengacu pada proses yang menentukan apa yang boleh dilakukan oleh pengguna.
Autentikasi dapat dianggap sebagai cara untuk memasuki ruang, seperti server, database, aplikasi, atau sumber daya, sedangkan otorisasi adalah tindakan yang dapat dilakukan pengguna terhadap objek di dalam ruang tersebut (server, database, atau aplikasi).
Kerentanan Umum dalam perangkat lunak
ASP.NET Core dan EF 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 Scripting Lintas Situs (XSS)
- 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 aman yang paling aman. Untuk layanan Azure, autentikasi yang paling aman adalah identitas terkelola.
Hindari Pemberian Kredensial Kata Sandi Pemilik Sumber Daya karena:
- Mengekspos kata sandi pengguna ke klien.
- Adalah risiko keamanan yang signifikan.
- Hanya boleh digunakan ketika 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 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.
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 terkelola identity
- 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
Untuk informasi tentang penyedia cloud lainnya, lihat:
- AWS (Amazon Web Services): AWS Key Management Service (KMS)
- Gambaran umum Google Cloud Key Management Service
Sumber Daya Tambahan:
ASP.NET Core