محتويات الدورة

تطوير البرمجيات الآمن / أساسي: النتائج والنماذج والقرارات / الدرس 2

رسم الأصول وتدفق البيانات وحدود الثقة

بناء نموذج صغير يوضح انتقال السلطة والبيانات الحساسة.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • تحديد الأصول والفاعلين والمخازن والعمليات والتبعيات الخارجية.
  • شرح حاجة الحد المرسوم إلى قرار ثقة مرتبط به.

نمذجة ما يحتاج إلى حماية

الأصل هو ما يهم المنتج فقده أو كشفه أو إفساده أو إساءة استخدامه. في خدمة الورش تستحق بيانات الاتصال بالحضور وملكية التسجيل وصلاحيات المنظم وسلامة أعداد الحضور اهتماما مستقلا. وتعد الشفرة وملفات البناء أصولا ضمن عملية التطوير أيضا. صنف البيانات بحسب معناها وطريقة المعالجة المطلوبة، ولا تفترض تساوي حساسية كل الحقول. فقد ينتقل عنوان ورشة عام وبريد حضور خاص داخل كائن استجابة واحد، مع اختلاف قواعد الإفصاح لكل منهما. يوجه هذا الفرق قرارات اختيار حقول الاستجابة والتسجيل التشخيصي لاحقا.

وصف التدفق بالمصدر والوجهة والغرض

يسمي نموذج تدفق البيانات المفيد الفاعل والعملية والمخزن وفئة البيانات واتجاه انتقالها. تجنب رسوما لا تعرض سوى مربعات وأسهم بلا تسميات. في التصدير سجل موضع إنشاء هوية المنظم، وتحميل الورش المسندة، واختيار الحقول، وتسليم النتيجة. أدرج الوظائف الخلفية والتسجيل التشخيصي، فقد ينقلان البيانات خارج حدود الطلب الظاهر. المثال قائمة غير قابلة للتنفيذ لتدفقات مختلقة؛ فلا يهيئ خدمة، ولا يدعي أن الحدود المرسومة منفذة على نحو صحيح.

json تدفق تصدير خيالي مسمى
{"model":"workshop-export-lab","flows":[{"from":"organizer-ui","to":"export-handler","data":"requested-workshop-id","trust":"untrusted-claim"},{"from":"identity-boundary","to":"export-handler","data":"validated-subject","trust":"reviewed-integration"},{"from":"registration-store","to":"export-handler","data":"attendee-contacts","trust":"scope-required"},{"from":"export-handler","to":"organizer-ui","data":"permitted-projection","trust":"authorization-required"}]}

يفصل السجل ادعاء العميل عن الفاعل الموثوق والبيانات المقيدة. إنه تخطيط لا بنية منشورة. يحتاج الوسيط وشروط التخزين وضوابط التسليم إلى تحقق خاص بها.

إرفاق قرار ثقة بكل حد

يشير حد الثقة إلى تغير في الافتراضات أو السلطة، وليس بالضرورة إلى انتقال عبر الشبكة. قد تبقى قيمة مقروءة من التخزين غير موثوقة عند استخدامها في HTML أو أمر نظام، وقد تعيد خدمة داخلية مألوفة قيمة تخالف عقد المستدعي. اسأل من يتحكم بالقيمة، وأي خاصية منها تحقق منها فعلا. يميز البرنامج المحلي بين حقائق يرسلها العميل وحقائق تأتي من حد هوية مراجع. لا ينفذ البرنامج التحقق من الهوية، بل يبين لماذا لا يمنح نسخ حقل المنظم الذي أرسله العميل سلطة موثوقة. كلمة داخلي ليست بديلا عن الدليل.

python التمييز بين مصادر الادعاءات المعلنة محليا
facts = [{"name":"organizer","source":"client"}, {"name":"subject","source":"reviewed-identity-boundary"}]
def trusted_for_identity(fact):
    return fact["source"] == "reviewed-identity-boundary"
assert trusted_for_identity(facts[0]) is False
assert trusted_for_identity(facts[1]) is True
print("identity claim sources distinguished")
الناتج المتوقع
identity claim sources distinguished

يقيم البرنامج الكامل تسميات مصدر خيالية يوفرها التمرين. لا يجوز لمستدع حقيقي تعيين مصدره الموثوق بنفسه. لا يستخدم رمزا أو جلسة أو مزود هوية أو اتصالا.

تسجيل افتراضات قد تبطل النموذج

يفيد النموذج عندما تصاغ افتراضاته بحيث يمكن مناقشتها وتحديها. حدد هل يمكن لمنظمين مشاركة ورشة، وهل يخزن التصدير أم يبث مباشرة، وهل تحتفظ الوظيفة بالفاعل الذي طلبها، وهل تدخل بيانات الاتصال في السجلات. يضيف الانتقال من تسليم متزامن إلى تنزيل خلفي أسئلة جديدة عن العمر والصلاحية. أظهر ما لا تعرفه بدلا من اختلاق افتراضات مطمئنة. اربط مراجعة النموذج بتغيير الميزة حتى يرى المراجع الحد الذي تغير. قد تحجب تفاصيل الرسم الكثيرة انتقال السلطة الأهم بدلا من توضيحه.

استخدام الخريطة لاختيار مراجعات محددة

حول كل تدفق مهم إلى سؤال محدد له مالك ومصدر دليل. راجع التحليل والتحقق من المجال عند انتقال الطلب من العميل إلى المعالج؛ وإنشاء السياق الموثوق عند انتقال الهوية؛ والنطاق وإسقاط الحقول بين التخزين والتصدير؛ والوصول والانتهاء بين التصدير والتنزيل. تصبح الخريطة مجرد زينة دون هذه الأسئلة اللاحقة. وفي المقابل لا يثبت محلل أو شرط محلي صحة كل سهم. احفظ دور النموذج في التفسير، وأسند فحص التنفيذ الفعلي إلى الحد المصرح باختباره، مستخدما بيانات مختلقة لا بيانات حضور حقيقية.

الأخطاء الشائعة وإصلاحها

تعامل كل الحقول المخزنة بوصفها عامة

لماذا يحدث؟
يهمل النموذج المعنى والإفصاح.
كيف تصلحه؟
صنف الحقول وحدد إسقاط الرد المسموح.
كيف تتجنب تكراره؟
راجع الفئات عند إضافة مسار إخراج.

تسمى خريطة شبكة نموذج ثقة

لماذا يحدث؟
لا تحدد الأسهم السلطة والتحقق.
كيف تصلحه؟
سم المصادر والتحكم والافتراضات.
كيف تتجنب تكراره؟
اشترط سؤال مراجعة لكل عبور مهم.

يعين العميل تسمية مصدره الموثوق

لماذا يحدث؟
تقبل بيانات المصدر من الحد الخطأ.
كيف تصلحه؟
أنشئ السياق عبر التكامل المراجع.
كيف تتجنب تكراره؟
اختبر ادعاءات العميل والحقائق الموثوقة منفصلة.

اختبر فهمك

1. ينتقل التصدير من استجابة مباشرة إلى تنزيل مخزن. ما أسئلة النموذج التي تتغير؟

اعرض الحل المشروح

أضف مخزن النتيجة ومسار الاسترجاع والعمر وفحص الإذن وقت التنزيل. حدد هل يحتفظ المنظم الذي فقد إسناده أو أزيل من النظام بالوصول، وهل يحتوي التخزين والسجل بيانات الاتصال. أبق فحوص الطلب القائمة، لكن لا تفترض أنها تثبت إذن التنزيل اللاحق.

2. هل يجعل التخزين الموثوق عنوان الورشة آمنا لكل وجهة إخراج؟

اعرض الحل المشروح

لا. مصدر التخزين وتفسير سياق الإخراج خاصيتان مختلفتان. قد يكون العنوان بيانات مشروعة ويحتاج مع ذلك ترميز HTML أو تسلسلا منظما أو واجهة آمنة أخرى تناسب السياق. سجل سياق الوجهة في التدفق وتحقق من ذلك الحد مستقلا.

أهم ما تعلمته

  • نمذج معنى البيانات والسلطة لا الهيكل فقط.
  • يحتاج حد الثقة قرارا ومصدر دليل صريحين.
  • تشمل الخريطة التدفقات الخلفية والتشخيصية.

المراجع الرسمية