Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kemahiran pengurusan kebenaran dalam rangka kerja Django

Kemahiran pengurusan kebenaran dalam rangka kerja Django

WBOY
WBOYasal
2023-06-17 12:40:401942semak imbas

Dengan populariti aplikasi web, semakin banyak perniagaan memerlukan pengurusan kebenaran. Sebagai rangka kerja pembangunan web yang popular, Django menyediakan set mekanisme pengurusan kebenaran yang agak lengkap. Dalam artikel ini, kami akan membincangkan teknik pengurusan kebenaran dalam rangka kerja Django.

Pengurusan kebenaran rangka kerja Django terutamanya merangkumi aspek berikut:

  1. Pengesahan pengguna
  2. Kebenaran pengguna
  3. Pengesahan kebenaran

Pengesahan Pengguna

Django menyediakan modul Django.contrib.auth untuk pengesahan pengguna. Modul ini termasuk pendaftaran pengguna, log masuk, log keluar dan fungsi lain Kami hanya perlu membuat konfigurasi yang berkaitan mengikut keperluan dalam dokumen untuk menggunakannya. Kaedah pengesahan yang lebih biasa digunakan ialah dua berikut:

  1. Pengesahan berasaskan sesi

Dalam kaedah pengesahan ini, selepas pengguna log masuk buat kali pertama, pelayan akan Maklumat disimpan dalam Sesi Setiap kali anda mengakses halaman yang memerlukan pengesahan kebenaran, pelayan akan menyemak sama ada maklumat pengguna wujud dalam Sesi. Jika ia tidak wujud, ia akan mengubah hala ke halaman log masuk. Kaedah ini sesuai untuk sistem kecil, tetapi akan meningkatkan beban pada pelayan dalam sistem besar.

  1. Pengesahan berasaskan token

Dalam kaedah pengesahan ini, pelayan akan menjana rentetan Token dan mengembalikannya kepada pelanggan, dan pelanggan perlu Membawa Token ke atas . Pelayan mengesahkan identiti pengguna dengan mengesahkan Token. Pendekatan ini dipanggil pengesahan "tanpa negara" kerana ia tidak memerlukan keadaan untuk dikekalkan pada bahagian pelayan.

Keizinan Pengguna

Dalam Django, kebenaran pengguna merujuk terutamanya kepada kebenaran pengguna untuk mengakses sumber yang sepadan. Django menyediakan dua kaedah kebenaran:

  1. Kawalan akses berasaskan peranan

Dalam kaedah kebenaran ini, kami memberikan kebenaran yang sepadan kepada peranan pengguna yang berbeza, dan pengguna log masuk Kemudian mereka akan mendapat kebenaran yang sepadan mengikut peranan mereka. Sebagai contoh, kami boleh memberikan kebenaran yang lebih tinggi kepada pentadbir untuk membenarkan mereka mengubah suai latar belakang.

  1. Kawalan akses berasaskan sumber

Dalam kaedah kebenaran ini, kami memberikan kebenaran yang sepadan kepada setiap sumber (atau setiap URL), dan pengguna mengakses Apabila mengakses sumber, anda perlu mengesahkan sama ada mereka mempunyai kebenaran yang sepadan. Kaedah ini lebih terperinci, tetapi memerlukan pemberian kebenaran yang sepadan kepada setiap sumber, yang memerlukan beban kerja yang lebih besar.

Pengesahan kebenaran

Django menyediakan kaedah penghias untuk pengesahan kebenaran, yang boleh kami tambahkan pada fungsi paparan yang memerlukan pengesahan. Penghias yang disediakan dalam rangka kerja Django adalah seperti berikut:

  1. login_diperlukan

Apabila mengakses halaman yang memerlukan log masuk, jika pengguna tidak log masuk, ubah hala ke lalai halaman log masuk.

  1. permission_required

digunakan untuk melindungi fungsi paparan tertentu dan hanya pengguna yang mempunyai kebenaran yang sepadan boleh mengaksesnya.

  1. user_passes_test

Anda boleh menyesuaikan fungsi pengesahan kebenaran mengikut keperluan anda sendiri Fungsi paparan hanya boleh diakses apabila fungsi mengembalikan True.

Tiga penghias di atas boleh disesuaikan dan dilanjutkan mengikut keperluan anda sendiri.

Ringkasan

Rangka kerja Django menyediakan mekanisme pengurusan kebenaran yang lengkap. Penggunaan mekanisme ini dengan betul boleh menambah keselamatan dan fleksibiliti pada aplikasi web dengan mudah. Adalah disyorkan bahawa semasa mereka bentuk aplikasi web, cuba ikuti "prinsip keistimewaan paling rendah", iaitu, hanya membenarkan pengguna mengakses sumber yang mereka perlukan untuk mengurangkan berlakunya kelemahan keselamatan.

Atas ialah kandungan terperinci Kemahiran pengurusan kebenaran dalam rangka kerja Django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn