الاختبارات
أثبت أن الوصول مرفوض، لا أنه مسموح فحسب.
اختبارات الأمان
لإعدادات الأمان خاصية مزعجة: فهي تفشل بصمت في الاتجاه الذي يهم. إذا كانت القاعدة صارمة أكثر من اللازم، فستعرف ذلك خلال ثلاثين ثانية، إذ سيشتكي أحدهم من عدم قدرته على الوصول إلى صفحة ما. أما إذا كانت متساهلة أكثر من اللازم، فلن يشتكي أحد. أبدًا. يعمل التطبيق، ويصل الجميع إلى ما يريدون، ثم يُكتشف الخلل عبر تدقيق أمني، أو على يد شخص نواياه أسوأ.
تصحح اختبارات الأمان هذا الخلل في التوازن، ولها خاصية مميزة: الحالات المهمة هي الحالات السلبية. فالاختبار الذي يتحقق من أن المسؤول يصل إلى لوحة الإدارة قيمته ضئيلة؛ لأن هذا المسار يُطرق باستمرار. أما الاختبار المهم فهو الذي يتحقق من أن المستخدم العادي يتلقى 403، وأن المستخدم المجهول يتلقى 401، وأن العميل لا يستطيع قراءة فاتورة عميل آخر.
ولهذه الاختبارات فضيلة ثانية: فهي توثّق نموذج الصلاحيات لديك بصيغة قابلة للتنفيذ. فعندما يضيف أحدهم قاعدة بعد ستة أشهر فيبتلع عن غير قصد قاعدة أكثر تحديدًا، سيوقفه الاختبار السلبي، لا المراجعة البشرية للشيفرة.
يوضح هذا الدرس كيفية كتابة هذه الاختبارات باستخدام spring-security-test. ويركّز على إعدادين ينتجان اختبارات خضراء لكنها فارغة، وتعطي اطمئنانًا زائفًا: نسيان استيراد إعدادات الأمان الخاصة بك، وتعطيل المرشحات.
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش