أمان الويب / المتوسط: دفاعات المتصفح وتفسير البيانات / الدرس 11
الرفع ودورة حياة الملف الكاملة
عامل المحتوى والاسم والتخزين والمعالجة والتنزيل كحدود دفاعية مترابطة.
في هذه الصفحة
أهداف الدرس
- ميّز نوع الملف المعلن من المحتوى المتحقق والمعالجة المعتمدة.
- حدد تخزيناً واسترجاعاً محدودين بملكية المورد.
اتبع الملف بعد نقطة الرفع
تشمل الميزة الاستلام وحد الحجم والاسم وتفسير النوع والتخزين والمعالجة والمشاركة والتنزيل والاحتفاظ والإزالة. ليست نقطة قبول البايتات إلا البداية. حدد من ينشئ ويقرأ ويستبدل ويحذف، وأي خدمة تعالج الملف. الاسم والامتداد وContent-Type المرسل ادعاءات لا إثبات. احصر التنسيقات بالحاجة واستخدم محللات مدعومة. تعمل الدورة على وصف وحقائق اصطناعية فقط، ولا ترفع ملفاً أو تستدعي فاحصاً أو خدمة تحويل. يظل لكل مرحلة حد يجب مراجعته.
حدد عقد استلام وتخزين صريحاً
تصف الخطة ميزة مستند خيالية صغيرة وحداً توضيحياً لا آمناً لكل منتج. يفرض الحقيقي الحدود قبل تخزين مؤقت مفرط، ويفحص المحتوى بمحلل التنسيق ويراعي حجم الفك والمعالجة. ولد معرف التخزين بالتطبيق، لا من مسار غير موثوق. افصل الاسم العام والداخلي واحفظ حيث لا يصير المحتوى شيفرة تطبيق. لا يثبت نطاق تخزين مقيد إذن التنزيل أو سلامة المعالج. يحتاج كل ادعاء من هذه الادعاءات تنفيذه وأدلته، لا خانة واحدة بالوصف.
{
"feature": "synthetic-note-attachment",
"allowedTypes": ["reviewed-document-format"],
"illustrativeMaxBytes": 131072,
"storageName": "application-generated-id",
"storageExecution": "not-permitted",
"downloadPermission": "resource-scoped",
"processingState": "review-required"
}
المخطط وصفي ولا يضبط خادماً أو ينشئ تخزيناً. حد البايتات اختيار صفي. تحتاج سياسات التنسيق والمعالجة والفحص المعتمد والاسترجاع تنفيذاً مراجعاً وأدلة مستقلة.
عامل المعالج والناتج اعتماديات
تفسر مكتبات الصور والمستندات والأرشيف والوسائط تنسيقات معقدة، فتحتاج دعماً وتحديثاً وحدود موارد وعزلاً مناسباً. ليس فحص بادئة أو بايتات سحرية تحققاً كاملاً. قد تتوسع المعالجة وتولد ملفات، فحد الذاكرة والمدة وعدد الناتج وحجمه بواجهات المنصة. لا تنفذ شيفرة المستخدم لفحص المرفق. حدد فشل وعزل الفحص أو إعادة البناء المعتمدين، ولا تجعل علامة نظيفة إثبات كل خاصية. أبعد الملف الحساس عن السجل العام والبيانات التعليمية المنشورة.
افصل حقائق التحقق عن القبول
تستهلك البوابة حقائق اصطناعية عن الحجم ومراجعة النوع والمعالجة. توضح أن امتداداً يبدو صحيحاً لا يكفي، ولا تحلل البايتات أو تفحصها أو تخزنها. يتلقى الحقيقي نتائج موثوقة من المدققات المعتمدة ويربطها بهوية الملف الثابتة نفسها، وإلا وصف ملفاً وخدم آخر. لا يتحول المرفوض لمورد عام، ولا تنشئ الإعادة نسخاً خاصة يتيمة أو تتجاوز المراجعة. يبقى الإذن مطلوباً حتى بعد اكتمال حقائق القبول المعلنة.
def attachment_review(facts, max_bytes=131072):
if type(facts.get("size")) is not int or not 0 < facts["size"] <= max_bytes:
return "reject-size"
if facts.get("typeReviewed") is not True:
return "hold-type-review"
if facts.get("processingComplete") is not True:
return "hold-processing"
return "check-download-permission"
assert attachment_review({"size": 100, "typeReviewed": False}) == "hold-type-review"
assert attachment_review({"size": 100, "typeReviewed": True, "processingComplete": True}) == "check-download-permission"
تستخدم الدالة وصف المختبر المعطى فقط، ولا تتحقق من ملف أو نتيجة فحص فعلية. تحتاج النهاية أيضاً إذن المورد، دون رفع أو تنزيل أو حساب أو عملية تخزين.
فوض التسليم وتحقق من التنظيف
يفرض التنزيل والمعاينة الإذن الحالي ويرجعان رؤوساً آمنة بواجهات الإطار المصانة. لا يتحول الاسم الظاهر لمسار أو رأس رد غير مضبوط. راجع العرض الداخلي والمرفق والتخمين والمخبأ وانتهاء الرابط وفق الميزة. للتخزين المؤقت مالك وتنظيف واحتفاظ. اختبر النوع المشروع والحجم والدليل الغائب ورفض المعالجة واسترجاع حساب آخر ببيانات سليمة مفوضاً. لا تثبت عملية رفع ناجحة أو نتيجة فاحص واحدة سلامة دورة الملفات بأكملها.
الأخطاء الشائعة وإصلاحها
يقبل الامتداد كإثبات محتوى
- لماذا يحدث؟
- استبدل الوسم تحقق التنسيق.
- كيف تصلحه؟
- استخدم محللاً ودليل معالجة معتمدين.
- كيف تتجنب تكراره؟
- افصل المعلن والمتحقق.
يتجاوز المرفق المخزن إذن التنزيل
- لماذا يحدث؟
- اختلط المكان بالإذن.
- كيف تصلحه؟
- افرض النطاق بكل استرجاع.
- كيف تتجنب تكراره؟
- اختبر المباشر والمعاينة مستقلين.
تستهلك المعالجة موارد بلا حد
- لماذا يحدث؟
- اعتُبر حجم الوارد وحده.
- كيف تصلحه؟
- حد العمل المدعوم والناتج.
- كيف تتجنب تكراره؟
- راجع الذاكرة والوقت والتوسع والتنظيف.
اختبر فهمك
1. يقول الوصف إن ملفاً معتمد وحجمه 100. ماذا يلزم؟
اعرض الحل المشروح
يلزم دليل موثوق يطابق هوية الملف الفعلي ونوعه المقبول ومعالجته المحدودة وسياسة التخزين والوصول الحالي. ليس علم موافقة يرسله العميل دليلاً. اربط الوصف بالبايتات التي ستُخدم فعلاً، ثم تحقق من كل مرحلة تحت العملية المعتمدة.
2. لماذا يدخل التنظيف بأمان الرفع؟
اعرض الحل المشروح
قد تحفظ النسخ المؤقتة والمرفوضة معلومات خاصة، أو تستهلك موارد، أو تصبح متاحة لاحقاً خارج العمر المقصود. عين مالكاً واحتفاظاً وتعافياً للانقطاع، ثم تحقق من الحذف وحدود الوصول وفق العملية المفوضة. يبدأ الأمان بالاستلام ولا ينتهي عنده.
أهم ما تعلمته
- ينشئ الرفع دورة لا استلاماً فقط.
- يختلف ادعاء النوع ودليل المعالجة.
- يكمل الاسترجاع والحد والتنظيف الحد الأمني.