
Authentication menjawab “siapa anda?” Authorization menjawab “apa yang anda boleh buat?” Dua perkara ini berkait, tetapi tidak sama. Pengguna yang sudah login ke portal masih tidak patut melihat invois orang lain hanya dengan menukar nombor pada URL.
Semak akses pada server bagi setiap sumber yang sensitif. Jangan bergantung pada butang yang disembunyikan di UI; permintaan API boleh dibuat terus. Polisi peranan boleh membantu, tetapi keizinan kadangkala bergantung pada pemilik rekod, organisasi atau status kerja. Dokumentasi authorization ASP.NET Core menerangkan pendekatan asas yang boleh disusun mengikut keperluan aplikasi.
Uji sebagai pengguna lain
Bina ujian yang cuba membuka rekod milik akaun berbeza, mengubah ID dalam URL dan menghantar tindakan tanpa kebenaran. Respons patut menolak permintaan tanpa membocorkan butiran yang tidak perlu. Semak log bagi cubaan yang mencurigakan, tetapi jaga data peribadi dalam log itu sendiri.
Bayangkan endpoint /orders/42. Pengguna A memang sudah login, tetapi rekod 42 milik Pengguna B. Ujian yang hanya memeriksa “request tanpa login ditolak” tidak menangkap kebocoran ini. Tambahkan kes pemilikan silang pada semakan automatik atau ujian manual yang terkawal supaya sempadan data diuji secara nyata.
Sistem akses yang baik tidak cukup dengan halaman login yang cantik. Ia perlu menjaga sempadan antara pengguna pada setiap operasi yang membaca atau menukar data.