10K Views

Symfony الأمن الناخبين

Updated 12 September 2023

Facebook Linkedin

في تطبيق ويب الأمن هو مصدر قلق بالغ ، إذا كان التطبيق الخاص بك لا يكفي لتأمين التي يمكن أن تخلق مشكلة خطيرة. فكيف يمكننا أن نؤكد طلبنا مؤمن ؟ هناك 2 الأمنية تصميم المصادقة والتخويل.

<قوية>المصادقة : المصادقة تتم معالجتها عند استخدام بيانات الاعتماد الخاصة بك (على سبيل المثال. اسم المستخدم وكلمة المرور) إلى تسجيل الدخول إلى النظام.

<قوية>إذن : بعد عملية المصادقة, تطبيق يعرف من أنت. ولكن يمكنك الوصول إلى بعض الموارد من التطبيق أو ليس هو التفويض.

 

 

Symfony عملية الترخيص يقرر ما إذا كان أو لم يكن الحالية يمكن للمستخدم الوصول إلى بعض URI ، أو تعديل كائن معين. هناك 2 طرق (ACL و الناخبين) ، ولكن الناخبين هو الحل الأسهل لتنفيذ هذه القيود.

Symfony الناخبين هو آلية لتوفير الوصول إلى المستخدم الحالي في بعض الموارد. الناخبين هي الطبقة التي تحتوي على isGranted الأسلوب حيث كتبنا منطق الأعمال المعقدة التي تقرر لديك الإذن أو عدم الوصول إلى هذا URI ، أو كائن.

جميع الناخبين يسمى كل مرة كلما دعا isGranted الطريقة ، يمكنك أيضا تمرير كائن إلى isGranted طريقة ثانية الحجة و الجدال سوف تمر إلى الناخبين.

دعونا خلق سيناريو من أجل فهم أفضل من الناخبين ، لنفترض أن هناك تذكرة مع رقم 1000 الذي تم تعيينه وكيل وكيل ب يحاول الوصول إلى هذه التذكرة ولكن وكيل ب لديه الإذن للوصول إلى هذه التذكرة.

لذلك خلق الناخبين للتغلب على هذا الوضع.

 

في أعلاه تحكم علينا التحقق ما إذا كان المستخدم الحالي يمكن الوصول إلى هذه التذكرة عن طريق الاتصال denyAccessUnlessGranted طريقة symfony الأساسية تحكم من Symfony\حزمة\FrameworkBundle\تحكم مساحة الاسم. طريقة denyAccessUnlessGranted هو أبسط isGranted الأسلوب الذي يدعو isGranted طريقة إذا كان المستخدم غير مخول ثم يخلق تم رفض الوصول استثناء (403 forbidden).

إنشاء تذكرة الناخبين حيث علينا أن نكتب المنطق تقييد المستخدم من الوصول إلى تذكرة.

 

 

في isGranted طريقة نعود صحيح إذا كان المستخدم لديه الوصول إلى false إذا لم يكن.

لصنع هذا الناخبين العمل, تحتاج إلى تكوين هذا الناخبين في الخدمة الخاصة بك.yml. أدناه هو رمز التكوين من الناخبين:

 

 

هذا هو. يمكنك كتابة الأعمال التجارية الخاصة بك المنطق على أساس الحاجة.

يمكنك أيضا التحقق من Symfony الناخبين على symfony وثائق http://symfony.com/doc/current/security/voters.html

شكرا على وقتك.

Category(s) uvdesk
. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.