


Pengurusan kebenaran RBAC dalam rangka kerja Yii: mengawal kebenaran akses pengguna
Jun 21, 2023 am 10:43 AMDengan pembangunan Internet yang berterusan, semakin banyak laman web dan aplikasi perlu melaksanakan pengurusan dan kawalan kebenaran pengguna untuk memastikan keselamatan dan kebolehpercayaan tapak web dan aplikasi. Sebagai rangka kerja PHP yang popular, rangka kerja Yii menyediakan set lengkap mekanisme pengurusan kebenaran RBAC (Role-Based Access Control) untuk mengawal kebenaran akses pengguna kepada sistem. Artikel ini akan memperkenalkan mekanisme pengurusan kebenaran RBAC dalam rangka kerja Yii dan menunjukkan penggunaannya dengan contoh mudah.
1 Pengenalan kepada mekanisme pengurusan kebenaran RBAC
RBAC ialah mekanisme kawalan akses berasaskan peranan Dengan mengaitkan pengguna dan kebenaran kepada peranan masing-masing, hubungan antara pengguna dan kebenaran direalisasikan dalam peranan. proses kebenaran. Dalam RBAC, kebenaran dibahagikan kepada operasi, objek dan peraturan. Operasi merujuk kepada operasi pada data, seperti mencipta, membaca, mengemas kini, memadam, dsb. Objek merujuk kepada data yang perlu dikendalikan, seperti artikel, ulasan, pengguna, dll. Peraturan ialah beberapa sekatan ke atas kebenaran, seperti sama ada ini Pemilik data, dsb. Peranan ialah koleksi kebenaran pengguna, yang terdiri daripada berbilang kebenaran Ia biasanya termasuk set operasi, satu set kebenaran objek dan beberapa peraturan. Dalam rangka kerja Yii, RBAC dilaksanakan melalui CPhpAuthManager.
2. Operasi asas pengurusan kebenaran RBAC
Pertama, kita perlu menambah kebenaran dan peranan pada sistem. Ini boleh dicapai dengan menambahkan kebenaran dan peranan baharu dalam objek pengurusan kebenaran CPhpAuthManager dalam rangka kerja Yii. Berikut ialah contoh kod untuk menambah kebenaran baharu:
// 添加新權(quán)限 $auth=Yii::app()->authManager; $auth->createOperation('createPost','create a new post'); $auth->createOperation('readPost','read a post'); $auth->createOperation('updatePost','update a post'); $auth->createOperation('deletePost','delete a post');
Dalam kod di atas, kami telah menambah empat kebenaran baharu: mencipta artikel, membaca artikel, mengemas kini artikel dan memadamkan artikel.
Seterusnya, kita perlu menentukan peranan dan menambah kebenaran pada peranan itu. Kod berikut menunjukkan cara menambah kebenaran di atas pada peranan bernama "admin":
// 添加一個(gè)新角色,將權(quán)限添加到角色中 $auth=Yii::app()->authManager; $role=$auth->createRole('admin'); $role->addChild('createPost'); $role->addChild('readPost'); $role->addChild('updatePost'); $role->addChild('deletePost');
Dalam kod di atas, kami mentakrifkan peranan bernama "admin" dan menambah empat kebenaran di atas Tambahkan pada peranan ini.
Akhir sekali, semasa memproses permintaan akses pengguna, kami perlu menyemak sama ada pengguna mempunyai kebenaran yang sepadan. Kod berikut menunjukkan cara untuk menyemak sama ada pengguna mempunyai kebenaran "createPost":
//檢查用戶是否具有createPost權(quán)限 $auth=Yii::app()->authManager; if($auth->checkAccess('createPost',$userId)) { // 用戶具有權(quán)限,進(jìn)行操作 } else { // 用戶不具有權(quán)限,返回錯(cuò)誤 }
Dalam kod di atas, kami mula-mula mendapatkan objek pengurusan kebenaran $auth, dan kemudian memanggil kaedah checkAccess untuk menyemak sama ada pengguna mempunyai kebenaran createPost. Jika pengguna mempunyai kebenaran ini, operasi yang sepadan boleh dilakukan, jika tidak mesej ralat perlu dikembalikan.
3. Contoh pengurusan kebenaran RBAC
Andaikan kami mempunyai laman web blog ini mengandungi tiga entiti asas: artikel, ulasan dan pengguna Kami perlu mengawal hak akses pengguna kepada tiga entiti ini. Dalam contoh ini, kami akan menentukan dua peranan asas: Pentadbir dan Pengguna Biasa. Pentadbir telah membuat, membaca, mengemas kini dan memadam kebenaran pada semua entiti, manakala pengguna biasa hanya mempunyai kebenaran membaca pada artikel dan ulasan.
Mula-mula, konfigurasikan komponen pengurusan kebenaran RBAC dalam fail konfigurasi rangka kerja Yii:
'authManager'=>array( 'class' => 'CDbAuthManager', 'connectionID' => 'db', 'itemTable' => '{{authitem}}', 'assignmentTable' => '{{authassignment}}', 'itemChildTable' => '{{authitemchild}}', ),
Kemudian, dalam pengawal kami, tambahkan kod berikut untuk menambah kebenaran dan peranan baharu:
$auth = Yii::app()->authManager; // 添加新權(quán)限 $auth->createOperation('createArticle', 'create a new article'); $auth->createOperation('readArticle', 'read an article'); $auth->createOperation('updateArticle', 'update an article'); $auth->createOperation('deleteArticle', 'delete an article'); $auth->createOperation('createComment', 'create a new comment'); $auth->createOperation('readComment', 'read a comment'); $auth->createOperation('updateComment', 'update a comment'); $auth->createOperation('deleteComment', 'delete a comment'); // 添加新角色 $roleAdmin = $auth->createRole('admin'); $roleAdmin->addChild('createArticle'); $roleAdmin->addChild('readArticle'); $roleAdmin->addChild('updateArticle'); $roleAdmin->addChild('deleteArticle'); $roleAdmin->addChild('createComment'); $roleAdmin->addChild('readComment'); $roleAdmin->addChild('updateComment'); $roleAdmin->addChild('deleteComment'); $roleUser = $auth->createRole('user'); $roleUser->addChild('readArticle'); $roleUser->addChild('readComment'); // 將角色分配給用戶 $auth->assign('admin', 1); $auth->assign('user', 2);
Dalam kod di atas, kami mula-mula mencipta lapan kebenaran baharu, yang digunakan untuk mengawal operasi CRUD artikel dan ulasan. Kemudian, kami menentukan dua peranan baharu: pentadbir dan pengguna, dan menambahkan kebenaran yang sepadan pada peranan tersebut. Akhir sekali, kami memberikan peranan pentadbir kepada pengguna 1 dan peranan pengguna kepada pengguna 2.
Seterusnya, dalam pengawal, kita boleh menyemak sama ada pengguna mempunyai kebenaran yang sepadan dengan memanggil kaedah checkAccess dan melaksanakan operasi yang sepadan, seperti yang ditunjukkan dalam kod berikut:
if(Yii::app()->user->checkAccess('createArticle')) { // 當(dāng)前用戶具有創(chuàng)建文章權(quán)限,進(jìn)行相應(yīng)操作 } if(Yii::app()->user->checkAccess('readArticle')) { // 當(dāng)前用戶具有讀取文章權(quán)限,進(jìn)行相應(yīng)操作 } if(Yii::app()->user->checkAccess('updateArticle')) { // 當(dāng)前用戶具有更新文章權(quán)限,進(jìn)行相應(yīng)操作 } if(Yii::app()->user->checkAccess('deleteArticle')) { // 當(dāng)前用戶具有刪除文章權(quán)限,進(jìn)行相應(yīng)操作 } if(Yii::app()->user->checkAccess('createComment')) { // 當(dāng)前用戶具有創(chuàng)建評(píng)論權(quán)限,進(jìn)行相應(yīng)操作 } if(Yii::app()->user->checkAccess('readComment')) { // 當(dāng)前用戶具有讀取評(píng)論權(quán)限,進(jìn)行相應(yīng)操作 } if(Yii::app()->user->checkAccess('updateComment')) { // 當(dāng)前用戶具有更新評(píng)論權(quán)限,進(jìn)行相應(yīng)操作 } if(Yii::app()->user->checkAccess('deleteComment')) { // 當(dāng)前用戶具有刪除評(píng)論權(quán)限,進(jìn)行相應(yīng)操作 }
Kod di atas , kami menyemak sama ada pengguna mempunyai kebenaran yang sepadan dengan memanggil kaedah checkAccess dan melaksanakan operasi yang sepadan apabila mempunyai kebenaran yang sepadan. Contohnya, apabila pengguna mempunyai kebenaran untuk mencipta artikel, kami boleh melakukan operasi cipta artikel yang sepadan.
4. Kesimpulan
Melalui pengenalan artikel ini, kita dapat melihat bahawa rangka kerja Yii menyediakan set lengkap mekanisme pengurusan kebenaran RBAC untuk mengawal kebenaran akses pengguna kepada sistem. Dengan mentakrifkan peranan dan menambahkan kebenaran pada peranan, kami boleh mengawal akses pengguna kepada entiti dalam sistem dengan mudah. Sudah tentu, sebagai tambahan kepada mekanisme pengurusan kebenaran RBAC, rangka kerja Yii juga menyediakan banyak ciri keselamatan lain, seperti penyulitan kata laluan, menghalang pemalsuan permintaan merentas tapak, dan lain-lain, yang boleh dipilih oleh pembangun untuk digunakan mengikut situasi sebenar.
Atas ialah kandungan terperinci Pengurusan kebenaran RBAC dalam rangka kerja Yii: mengawal kebenaran akses pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perisian tengah rangka kerja Yii: menyediakan sokongan storan data berbilang untuk aplikasi Pengenalan Middleware (perisian tengah) ialah konsep penting dalam rangka kerja Yii, yang menyediakan sokongan storan data berbilang untuk aplikasi. Middleware bertindak seperti penapis, memasukkan kod tersuai antara permintaan dan respons aplikasi. Melalui perisian tengah, kami boleh memproses, mengesahkan, menapis permintaan, dan kemudian menyerahkan hasil yang diproses kepada perisian tengah atau pengendali akhir yang seterusnya. Middleware dalam rangka kerja Yii sangat mudah digunakan

Perisian tengah rangka kerja Yii: Tambah keupayaan pengelogan dan penyahpepijatan pada aplikasi [Pengenalan] Semasa membangunkan aplikasi web, biasanya kami perlu menambah beberapa ciri tambahan untuk meningkatkan prestasi dan kestabilan aplikasi. Rangka kerja Yii menyediakan konsep perisian tengah yang membolehkan kami melaksanakan beberapa tugas tambahan sebelum dan selepas aplikasi mengendalikan permintaan. Artikel ini akan memperkenalkan cara menggunakan fungsi perisian tengah bagi rangka kerja Yii untuk melaksanakan fungsi pengelogan dan penyahpepijatan. [Apakah middleware] Middleware merujuk kepada pemprosesan permintaan dan respons sebelum dan selepas aplikasi memproses permintaan.

Dengan perkembangan pesat aplikasi web, pembangunan web moden telah menjadi kemahiran penting. Banyak rangka kerja dan alatan tersedia untuk membangunkan aplikasi web yang cekap, antaranya rangka kerja Yii adalah yang sangat popular. Yii ialah rangka kerja PHP berasaskan komponen berprestasi tinggi yang menggunakan corak dan teknologi reka bentuk terkini, menyediakan alatan dan komponen yang berkuasa serta sesuai untuk membina aplikasi web yang kompleks. Dalam artikel ini, kita akan membincangkan cara menggunakan rangka kerja Yii untuk membina aplikasi web. Pasang rangka kerja Yii dahulu,

Langkah-langkah untuk melaksanakan caching halaman web dan chunking halaman menggunakan rangka kerja Yii Pengenalan: Semasa proses pembangunan web, untuk meningkatkan prestasi dan pengalaman pengguna tapak web, selalunya perlu untuk cache dan chunk halaman. Rangka kerja Yii menyediakan fungsi caching dan reka letak yang berkuasa, yang boleh membantu pembangun melaksanakan caching halaman web dan chunking halaman dengan pantas Artikel ini akan memperkenalkan cara menggunakan rangka kerja Yii untuk melaksanakan caching halaman web dan chunking halaman. 1. Hidupkan caching halaman web Dalam rangka kerja Yii, caching halaman web boleh dihidupkan melalui fail konfigurasi. Buka fail konfigurasi utama co

Dalam rangka kerja Yii, pengawal memainkan peranan penting dalam memproses permintaan. Selain mengendalikan permintaan halaman biasa, pengawal juga boleh digunakan untuk mengendalikan permintaan Ajax. Artikel ini akan memperkenalkan cara mengendalikan permintaan Ajax dalam rangka kerja Yii dan memberikan contoh kod. Dalam rangka kerja Yii, pemprosesan permintaan Ajax boleh dijalankan melalui langkah-langkah berikut: Langkah pertama ialah mencipta kelas pengawal (Pengawal). Anda boleh mewarisi kelas pengawal asas yiiwebCo yang disediakan oleh rangka kerja Yii

Dalam pembangunan aplikasi web moden, alat penyahpepijatan amat diperlukan. Mereka membantu pembangun mencari dan menyelesaikan pelbagai masalah dengan aplikasi mereka. Sebagai rangka kerja aplikasi web yang popular, rangka kerja Yii secara semula jadi menyediakan beberapa alat penyahpepijatan. Artikel ini akan menumpukan pada alat penyahpepijatan dalam rangka kerja Yii dan membincangkan cara alat tersebut membantu kami menganalisis dan nyahpepijat aplikasi. GiiGii ialah penjana kod untuk rangka kerja Yii. Ia boleh menjana kod secara automatik untuk aplikasi Yii, seperti model, pengawal, paparan, dsb. Menggunakan Gii,

Menyulitkan dan menyahsulit data sensitif menggunakan perisian tengah rangka kerja Yii Pengenalan: Dalam aplikasi Internet moden, privasi dan keselamatan data adalah isu yang sangat penting. Untuk memastikan bahawa data sensitif pengguna tidak boleh diakses oleh pelawat yang tidak dibenarkan, kami perlu menyulitkan data ini. Rangka kerja Yii memberikan kami cara yang mudah dan berkesan untuk melaksanakan fungsi menyulitkan dan menyahsulit data sensitif. Dalam artikel ini, kami akan membincangkan cara untuk mencapai ini menggunakan perisian tengah rangka kerja Yii. Pengenalan kepada rangka kerja Yii Rangka kerja Yii ialah rangka kerja PHP berprestasi tinggi.

Apabila bersiap untuk temu bual dengan Rangka Kerja YII, anda perlu mengetahui perkara pengetahuan utama berikut: 1. Senibina MVC: Memahami karya kolaboratif model, pandangan dan pengawal. 2. Activerecord: Menguasai penggunaan alat ORM dan memudahkan operasi pangkalan data. 3. Widget dan pembantu: biasa dengan komponen terbina dalam dan fungsi penolong, dan dengan cepat membina antara muka pengguna. Menguasai konsep teras dan amalan terbaik ini akan membantu anda menonjol dalam wawancara.
