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

Svelte / المتقدم: العرض والموارد وأدلة الإصدار / الدرس 15

البنية غير الموثوقة والرفع وحدود الأمن

راجع كل وجهة إدخال وإخراج عام بعقد ثقة وموارد خاص به.

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

أهداف الدرس

  • افصل النص المهرب وHTML الخام وسياسة أصل المتصفح وإذن المجال.
  • حدد استقبال رفع محدوداً وتخزيناً خاصاً وإفصاح خطأ آمناً.

الهروب سياقي وHTML الخام قدرة

يختلف النص و{@html} في الثقة؛ قد يقدم الخام تنفيذياً أومضللاً دون مسار محتوى مراجع. ليس replace منزلي تعقيماً كاملاً. تحد CSS المحدودة المحددات وفق المترجم ليست بيئة عزل أمنية أوضمان أمان للبنية الخام. تختلف URL والتنسيق والسمة والشيفرة في التحليل. أبق العنوان نصاً وافحص الرابط ووجهته بعقده، ولا تجعل تحقق سلسلة يحمي كل استخدام. قد يكون نص مسموحاً بوصف مقرر وغير مناسب كتوجيه CSS أوكعنوان جلب يرسل الخادم إليه اعتماداً، لأن قدرة الوجهة تغير الخطر والمعنى معاً.

افصل الاستقبال والفحص والنشر

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

json سياسة رفع محدود اصطناعية
{"intake":"synthetic-only","storage":"private-quarantine","keyOwner":"server","limits":["bytes","parts","fields","temporary-space"],"cleanup":"rejection-and-interruption","publication":"after-domain-approval"}

لا يطبق السجل محللاً أوتخزيناً أو يقبل ملفاً؛ يسرد متطلبات مستقلة للمراجعة.

فحص أصل المتصفح والسلطة الحالية ضابطان مختلفان

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

اختر الفشل الآمن المعروف بدلاً من استثناء المصدر

يميز الموائم رمز تحقق ويعيد عاماً للمجهول، ولا يثق status أو يكشف الرسالة الخاصة. يعيد الحقيقي مشاكل متوقعة عبر fail ويعالج غير المتوقع بخطأ Kit وربط داخلي. الاختبار JavaScript لاhandleError أوHTTP. لا يثبت الفشل المنسق تراجع كتابة؛ احفظ هوية العملية وسو الأثر مستقلاً. ينبغي ألا تحمل نتيجة action كائن Error خاماً لأن حقوله تبدو مفيدة للتشخيص؛ قد تحتوي مسار ملف أوتفصيل مصدر لا يناسب متصفح المستدعي أوالجمهور الذي سيصل إلى السجل المعروض.

javascript إسقاط خطأ عام محلي كامل
function safeError(error){return error?.code==="INVALID_TITLE"?{code:"INVALID_TITLE"}:{code:"INTERNAL_ERROR"};}
console.assert(safeError({code:"INVALID_TITLE"}).code==="INVALID_TITLE");
console.assert(JSON.stringify(safeError({status:200,message:"private-source"}))==='{"code":"INTERNAL_ERROR"}');

يبقى التحقق محدداً ويحذف الخاص المجهول دون hook أوفعل Kit.

استخدم حدوداً مصانة وتحققاً صادقاً

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

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

يدرج نص غير موثوق عبر {@html}

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

يحدد اسم ملف مسار خادم خاصاً

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

يكشف خطأ عام تفاصيل مصدر خاصة

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

اختبر فهمك

1. هل تجعل CSS المحدودة HTML خاماً عشوائياً آمناً؟

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

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

2. لماذا ليس فحص الأصل تفويض فعل كاملاً؟

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

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

أهم ما تعلمته

  • لكل وجهة إدخال وتمثيل عام عقد ثقة خاص.
  • لا تصادق فحوص إخراج محلية وضع أمن نشر كامل.

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