ASP.NET Core / المتقدم: التحقق والتشغيل الموثوق / الدرس 16
النشر والثقة بالوكيل
وثق آثار التشغيل والإعداد وحدود الوكيل وحفظ المفاتيح والصحة والإيقاف بوصفها عقود نشر صريحة.
في هذه الصفحة
أهداف الدرس
- ميز صيانة النشر المعتمد على الإطار من النشر المكتفي ذاتيا.
- ثق بالترويسات الممررة من المسار المقصود وحده.
- افصل الفحوص المحلية للوسيط من دليل النشر الفعلي.
للأثر المنشور هدف تشغيل ومالك للتحديث
سجل SDK وإطار العمل المستهدف وإصدار اللغة وإعداد البناء ومعرف التشغيل عند الحاجة والاعتماديات ونمط النشر. يحتاج النشر المعتمد على الإطار إلى بيئة تشغيل متوافقة ومدعومة. يحمل النشر المكتفي ذاتيا مكونات تشغيل تحتاج إلى إعادة بناء وإصدار لصيانتها. لا يرقع تثبيت SDK أحدث على جهاز المطور أثرا منشورا بالفعل تلقائيا.
يبقى أمر النشر التوضيحي غير قابل للتشغيل. لا ينشئ أثرا في هذا المقرر ولا ينشر شيئا. قد يفرض التقليص وnative AOT متطلبات إضافية للانعكاس والبيانات الوصفية والتوافق؛ ولا يتحقق نجاح تنفيذ مكون JIT عادي من تلك الأنماط. راجع الدعم الحالي وعقد نظام التشغيل وبيئة التنفيذ الفعليين.
dotnet publish -c Release -f net10.0 --self-contained false
لا ينفذ هذا الأمر؛ ولا ينشر أثر تطبيق أو يوزع في بيئة تشغيل.
تعبر الترويسات الممررة حد ثقة
قد ينهي الوكيل العكسي TLS ويمرر الطلبات فيرى التطبيق مخطط نقل أو مضيفا أو عنوان عميل مختلفا. تؤثر هذه القيم في الإعادات وملفات الارتباط الآمنة والروابط وردود المصادقة والتسجيل. لا تثق بترويسات تمرير اعتباطية يوردها العميل. هيئ الوكلاء والشبكات المعروفة وحدود التمرير وفق سلسلة النشر الفعلية.
يتجاهل سلوك صيانة ASP.NET Core الحديث المدعوم الترويسات الممررة من وكلاء مجهولين وفق العقد الموثق. يجب اختبار أساس .NET 10 بخياراته الحالية، لا بنصيحة تمسح كل قوائم الثقة. لترشيح المضيف والسماح بالمضيف الممرر غرضان خاصان؛ ولا يشكل إعداد واحد إثباتا عاما ضد الانتحال.
اختبر أقرانا اصطناعيين موثوقين وغير موثوقين
يستدعي البرنامج الكامل ForwardedHeadersMiddleware مباشرة لعنوانين محجوزين للتوثيق. يستطيع النظير الموثوق المهيأ تقديم https، ولا يستطيع غير الموثوق تغيير مخطط http المعين. يختبر هذا اجتماع الوسيط والخيارات في الذاكرة، لا وكيلا حقيقيا أو شهادة أو مقبسا أو نشرا عاما. لا ترسل حركة إلى أي من العنوانين.
سجل مسار الوكيل الدقيق واختبر حالات انتحال سلبية في تكامل معتمد. قد يسبب المخطط الخاطئ حلقات إعادة أو سلوك ارتباط غير آمن، بينما تسمح الثقة بكل مصدر بانتحال معلومات تؤثر في الأمن. شخص الحد المفقود أو الخاطئ بدلا من تعطيل الحمايات حتى يختفي العرض.
using System;
using System.Net;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.Extensions.Logging.Abstractions;
using Microsoft.Extensions.Options;
var options = new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedProto };
options.KnownProxies.Add(IPAddress.Parse("192.0.2.10"));
var middleware = new ForwardedHeadersMiddleware(_ => Task.CompletedTask, NullLoggerFactory.Instance, Options.Create(options));
string untrusted = await CheckAsync("203.0.113.7");
string trusted = await CheckAsync("192.0.2.10");
Console.WriteLine($"untrusted={untrusted} trusted={trusted}");
async Task<string> CheckAsync(string peer)
{
var context = new DefaultHttpContext();
context.Connection.RemoteIpAddress = IPAddress.Parse(peer);
context.Request.Scheme = "http";
context.Request.Headers["X-Forwarded-Proto"] = "https";
await middleware.Invoke(context);
return context.Request.Scheme;
}
untrusted=http trusted=https
يغير المخطط الوكيل الاصطناعي المهيأ وحده؛ ولا يفتح الاختبار مستمعا أو اتصالا.
تحتاج النسخ إلى إعداد متوافق وأعمار مفاتيح متوافقة
قد تعتمد ميزات ملفات الارتباط وحماية البيانات الأخرى على حفظ المفاتيح وعزل التطبيق وإمكان الوصول عبر النسخ والإعادات. قد تكسر مفاتيح محلية مؤقتة الاستمرارية، وقد ينشئ مخزن مفاتيح مشترك بنطاق خاطئ مشكلة ثقة أخرى. اختر التخزين الآمن المدعوم والصلاحيات عن قصد. لا يقرأ المقرر أسرارا أو مادة مفاتيح إنتاجية حقيقية ولا يولدها.
تحقق من الإعداد قبل قبول الطلبات، واحفظ سلوك التسجيل والأخطاء الخاص بكل بيئة، وأبعد الأسرار عن الصور والتشخيص العام. ليس منفذ تطوير في launchSettings عقد ربط إنتاجي. تحقق من إعداد المضيف والوكيل والحاوية الفعلي بدلا من نسخ عنوان محلي إلى ملاحظة الإصدار.
يشمل النشر البدء وتصريف العمل والتراجع
خطط للجاهزية وقبول الحركة والإيقاف المنظم وإلغاء العمل الخلفي وانتظاره وتصريف الاتصالات وتوافق الترحيل. قد يتطلب التراجع أكثر من استبدال الثنائيات إذا تغير المخطط أو الآثار الخارجية. يجب التحقق من توصيل فحوص الصحة والمسابير وتسليم الإشارات في بيئة النشر المعزولة المقصودة، لا استنتاجها من اختبار مكون مباشر.
سجل الأثر والبيئة اللذين اختبرا، وافتراضات الاعتماد والإصدار المتبقية، وكيف تطبق ترقيعات التشغيل. البناء الناجح أثر ملموس قابل للمراجعة، لا إذن بالنشر. تبقى أوامر النشر والإعداد كلها توضيحية هنا، ولا يتغير تطبيق أو خادم مهيأ أو بنية تحتية.
الأخطاء الشائعة وإصلاحها
تُوثق كل الترويسات الممررة لإصلاح حلقة إعادة توجيه.
- لماذا يحدث؟
- أزيل العرض بتوسيع حد أمني.
- كيف تصلحه؟
- هيئ سلسلة الوكلاء الموثوقة الفعلية وتحقق من سلوك المخطط والمضيف.
- كيف تتجنب تكراره؟
- اختبر نظيرا غير موثوق صراحة.
يُفترض أن تحديث تشغيل المضيف يرقع أثرا مكتفيا ذاتيا.
- لماذا يحدث؟
- أُغفلت صيانة التشغيل المضمن.
- كيف تصلحه؟
- أعد البناء والإصدار ضمن عملية الترقيع المدعومة والمعتمدة.
- كيف تتجنب تكراره؟
- سجل مكونات التشغيل في بيانات الأثر الوصفية.
يُعد مسار الصحة مسبار نشر مختبرا.
- لماذا يحدث؟
- اختلطت شفرة النقطة بتوصيل البيئة.
- كيف تصلحه؟
- تحقق من المسار والمصادقة والتوقيت ودلالات المنسق الفعلية للمسبار.
- كيف تتجنب تكراره؟
- افصل دليل النشر من اختبارات المكونات.
اختبر فهمك
1. لماذا قد ينجح اختبار وكيل موثوق اصطناعي بينما يظل النشر الحقيقي يعيد التوجيه خطأ؟
اعرض الحل المشروح
قد يختلف عنوان النظير أو شبكته وعدد القفزات وأسماء الترويسات الممررة وإعداد المخطط والمضيف وإنهاء TLS وترتيب الوسيط. يثبت الاختبار مجموعة خيارات صريحة واحدة في الذاكرة فقط. تحقق من السلسلة المنشورة في بيئة معزولة ومأذونة مع إبقاء منع الانتحال. لا تمسح حدود الثقة لمجرد مطابقة مسار نجاح محلي.
2. ما الذي يجب مراعاته عندما تستخدم نسخ متعددة مصادقة ملفات الارتباط عبر إعادات التشغيل؟
اعرض الحل المشروح
يجب أن يدعم مخزن مفاتيح حماية البيانات واسم عزل التطبيق والصلاحيات والتدوير والاحتفاظ وسياسة الساعة والعمر وإعداد المصادقة المتوافق المشاركة المقصودة. لا يدل ارتباط يعمل بعملية واحدة على أن نسخة أخرى تستطيع التحقق منه بأمان. اختبر الاستمرارية والعزل بهويات اصطناعية ضمن إعداد نشر معتمد؛ ولا تعرض مادة مفاتيح حقيقية في الاختبارات أو السجلات.
أهم ما تعلمته
- تحتاج صيانة الأثر ونمط النشر إلى ملكية صريحة.
- لا تُوثق الترويسات الممررة إلا وفق عقد وكيل مراجع.
- ليس اختبار الوسيط المباشر اختبار TLS أو وكيل أو مسبار منشور.