Aspnetcore: ضع في اعتبارك تغيير عناوين URL لتجميعات .NET بحيث لا تنتهي بـ dll

تم إنشاؤها على ٢٧ فبراير ٢٠١٨  ·  104تعليقات  ·  مصدر: dotnet/aspnetcore

كنت أرغب في رؤية العرض التوضيحي على https://blazor-demo.github.io/ وقام جدار الحماية الخاص بشركتي بحظر MicroApp.dll ، بينما تم تنزيل ملفات dll الأخرى بنجاح. نظرًا لأن الكثير من البرامج مصابة بجنون العظمة بشأن تنزيل / نقل ثنائيات Windows ، فربما يكون الأمر يستحق التعتيم عليها قليلاً؟ أو على الأقل إعادة التسمية؟

Components Big Rock area-blazor blazor-wasm enhancement

التعليق الأكثر فائدة

ماذا عن YourAssembly.blazor ؟ قد تكون طريقة رائعة للترويج للمشروع (بشكل طفيف جدًا) إذا نظر أي من مطوري الويب في أدوات التطوير لمعرفة كيف تم إنشاء الموقع؟ أو ربما أكون أنا فقط من أعلم أحيانًا أن موقعًا ما تم إنشاؤه باستخدام Vue.js أو أي شيء آخر ويعتقد أنه "رائع" :)

ال 104 كومينتر

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

SteveSandersonMS فقط لإسقاط 2c هنا. ليست جدران الحماية الخاصة بالشركات فقط هي التي تعاني من .dll-fobia . بعض برامج مكافحة الفيروسات المحلية لديها نفس المشكلة أيضًا.

galvesribeiro محق في عدم ذكر أنه إذا لم أكن على دراية بما يحدث ورأيت موقعًا إلكترونيًا يحاول تنزيل ملف DLL ، فسأخرج منه! ضع في اعتبارك التصور عند معالجة هذا :)

joeizy نعم ، أنا أتفق معك تمامًا على أنه بالنسبة لغالبية الحالات ، فإن block dlls هو الشيء الصحيح الذي يجب القيام به. هذا هو السبب في أننا نتحدث عن إعادة تسميته لأننا على يقين مما نقوم به ...

ماذا عن YourAssembly.blazor ؟ قد تكون طريقة رائعة للترويج للمشروع (بشكل طفيف جدًا) إذا نظر أي من مطوري الويب في أدوات التطوير لمعرفة كيف تم إنشاء الموقع؟ أو ربما أكون أنا فقط من أعلم أحيانًا أن موقعًا ما تم إنشاؤه باستخدام Vue.js أو أي شيء آخر ويعتقد أنه "رائع" :)

ماذا عن .bin ببساطة؟

أنا أحب .bin أو .blazor أيضًا.

+1 ".bin"

.lib أو .bin أو .ilasm؟

حتى نتمكن من اتخاذ قرار مستنير بشأن هذا الأمر ، فسيكون من المفيد حقًا أن يكون لدينا خطوات إعادة تقييم تقريبية (أو على الأقل بعض التلميح في هذا الاتجاه). نحتاج أن نفهم على وجه التحديد ما إذا كانت مشكلة تسمية أم مشكلة محتوى ، على سبيل المثال.

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

SteveSandersonMS أعتقد أنه ليس منتجًا معينًا. تحتوي المنتجات المتعددة ، خاصة تلك المستخدمة بكثرة من قبل المؤسسات ، على إعدادات تهيئة المد والجزر على أنواع الملفات خاصة تلك الشائعة مثل. exe ، .dll ، .so ، إلخ.

الاسم نفسه هو أول مانع ولكن ، إحدى الطرق لتقليل هذه المشكلة ، هي نفس الطريقة التي تعاملنا بها مع ClickOnce منذ .Net 2.0. جمعيات التوقيع.

تكمن المشكلة في (1) أنها ليست رخيصة ، (2) عملية الحصول على تلك الشهادات حتى لو كنت تستطيع تحملها معقدة للغاية وحتى غير متوفرة في بعض البلدان وحتى إذا حصلت عليها ، (3) شهادة عادةً ما تستغرق الشركة / المطور بعض الوقت ليتم الوثوق بها بواسطة قاعدة بيانات برامج مكافحة الفيروسات.

بالنسبة للتجمعات التي تم إصدارها من MSFT ، فهي ليست أخبارًا كبيرة لأننا نعلم أن كل تجميع مشحون ، حتى OSSed منها ، هو رمز موقع بواسطة سياسة corpnet. لكن فكر في المطورين الآخرين والشركات الناشئة ومشاريع OSS. سوف يعانون جميعًا من ذلك.

أتذكر أنه في الأيام الخوالي عندما كان Silverlight شيئًا ، إذا أردنا تنزيل التجميعات عند الطلب ، فنحن نضعها في ملف xap (وهو في الواقع ملف مضغوط) ثم نستخرجها باستخدام
https://msdn.microsoft.com/en-us/library/cc190632 (v = مقابل 95) .aspx

لست متأكدًا مما إذا كان هناك سبب لذلك (بخلاف دمج ملفات dlls المتعددة في ملف واحد). أعتقد أن فريق Silverlight يجب أن يكون على دراية بمشكلات جدار الحماية إن وجدت.

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

أنا لا أقترح استخدام التجميع لـ Blazor. أنا أقول فقط أنه بصرف النظر عن ميزة التجميع ، ربما كان فريق Silverlight يستخدم ملفات xap لتجنب مشكلات جدار الحماية. هذا مجرد تخمين بالطبع.

احتفظ بـ ".net" كملحق

نحن في عوالم ركوب الدراجات في هذا الآن. ومن ثم فإنني أسأل تحديدًا عن أمثلة ملموسة لمنتجات جدار الحماية الفعلية التي تواجه مشكلة في ذلك.

أعتقد أنه ليس منتجًا معينًا

ومع ذلك ، قد تساعد أمثلة منتجات معينة ، وتحت أي تكوينات يحدث هذا.

تضمين التغريدة النقطة المهمة هي أن إصلاح المشكلة في برنامج مكافحة فيروسات / جدار ناري واحد لن يغطي جميع البرامج الأخرى لأننا نعلم جميعًا أن كل واحد لديه إعدادات إرشادية وقاعدة بيانات وإعدادات خاصة به. الحالة الوحيدة التي يمكن أن تغطي كلاً من قواعد التسمية والتوقيع لكل شيء ، هي:

  1. التوقيع على الجمعيات كالمعتاد و ؛
  2. تأكد من أن التسمية ليست في القائمة السوداء _default_

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

شكرا للمعلوماتgrahamehorner. هل تعرف تقريبًا ما ستكون خطوات repro؟ إذا قمت للتو بتثبيت NOD32 على جهاز Windows (رمي) ، فهل هذا كافٍ لجعله غير قادر على فتح https://blazor-demo.github.io/؟ أو هل هناك حاجة إلى أي تكوين إضافي؟

من https://www.paloaltonetworks.com/documentation/80/pan-os/pan-os/threat-prevention/set-up-file-blocking :

تسمح لك ملفات تعريف حظر الملفات بتحديد أنواع ملفات معينة تريد حظرها أو مراقبتها. بالنسبة لمعظم حركة المرور (بما في ذلك حركة المرور على شبكتك الداخلية) ، ستحتاج إلى حظر الملفات المعروف أنها تحمل تهديدات أو التي ليس لها حالة استخدام حقيقية للتحميل / التنزيل. حاليًا ، تتضمن هذه الملفات الدفعية وملفات DLL وملفات فئة Java وملفات المساعدة واختصارات Windows (.lnk) وملفات BitTorrent.

SteveSandersonMS أنا في انتظار اجتماع مع فريق إدارة تكنولوجيا المعلومات لدينا والذي يدير عن بعد NOD32 وتكوينه لمعرفة ما (إذا كان هناك أي شيء) قاموا بتغييره / تخصيصه ، حيث تلقيت أيضًا رسالة بريد إلكتروني آلية من نظام NOD32 الخاص بنا تفيد بأنني انتهكت سياسة أمان الشركة عن طريق تنزيل / تثبيت برامج غير موثوق بها. سأعيد النشر باسم / عندما أكتشف أو لدي معلومات إضافية.

أتساءل عما إذا كان من الممكن / سيتم حظر ملفات dlls إذا تم حزمها في ملف .nupkg وتفريغها / تحميلها بواسطة blazor بعد التنزيل؟

حاليًا ، تتضمن هذه الملفات الدفعية وملفات DLL وملفات فئة Java وملفات المساعدة واختصارات Windows (.lnk) وملفات BitTorrent.

هذا ما أقوله ... بغض النظر عن المنتج ، هذه هي القائمة _default_ لأنواع الملفات التي سيتم حظرها من قبل أي مسؤول تكنولوجيا المعلومات في شركة عادية (عادة لا تعتمد على تكنولوجيا المعلومات) ...

راجع للشغل ، إذا كان هناك شخص من فريق WPF يعمل مع .xap ، فيمكنه إخبار أي شخص بوضوح بما واجهه عندما أصدر "WPF in a Browser" مرة أخرى في اليوم وواجه _ بالضبط _ نفس المشكلة.

لقد استغرق الأمر بعض الوقت حتى _جميع_ برامج مكافحة الفيروسات تبدأ في الثقة _ على هذا الامتداد.

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

تصفح صفحة المؤتمرات الرسمية ...
http://webassembly.github.io/spec/core/binary/conventions.html

الامتداد الموصى به للملفات التي تحتوي على وحدات WebAssembly بتنسيق ثنائي هو ".wasm" ونوع الوسائط الموصى به هو "application / wasm".

لذلك يبدو أن أول شيء يجب فعله هو إعادة تسمية الملفات إلى .wasm ، وإذا كانت لا تزال محظورة ، فيجب إلغاء حظر جدار الحماية.

لا أعتقد أن إعادة تسمية الملفات إلى .wasm فكرة جيدة. مكتبات DLL ليست وحدات Wasm ، فهي تجميعات .NET يتم تفسيرها (حاليًا) بواسطة وقت تشغيل Mono Wasm ( اقرأ المزيد ). فقط وقت التشغيل الأحادي هو وحدة Wasm. ومع ذلك ، فإنني أيضًا أصوت لإعادة تسمية مكتبات DLL إلى شيء آخر بسبب جدران الحماية خاصة في سيناريوهات المؤسسة.

حظر برنامج Antivirus AVG الإصدار 18.1.3044 ملفات DLL أيضًا عندما حاولت زيارة https://blazor-realworld.azurewebsites.net/

لا أعتقد أن إعادة تسمية الملفات إلى .wasm فكرة جيدة. مكتبات DLL ليست وحدات Wasm ، فهي تجميعات .NET يتم تفسيرها (حاليًا) بواسطة وقت تشغيل Mono Wasm (اقرأ المزيد). فقط وقت التشغيل الأحادي هو وحدة Wasm.

تكمن المشكلة في ما يمكن أن يكون عليه امتداد "شيء آخر" بسبب عدم تطبيق أي من الامتدادات الحالية (تُفسر حمولات .NET MSIL مباشرة في وضع الحماية للمتصفح مفهوم جديد تمامًا في الأمان) بينما يسمح جدار الحماية الخاص بالشركة بـ wasm بالفعل.

قد لا يكون التعامل مع .xap مرجعًا جيدًا من وجهة نظر الأمان لأنه يتجاوز وضع الحماية لأمان المتصفح على عكس wasm.

نعم ، تحتوي ملفات DLL على MSIL ، لذا فهي صحيحة من الناحية الفنية ، فهي ليست ثنائية تمامًا. ولكن تم تسميتها DLL لأنها تمت تسميتها باسم Win32 DLLs الأصلية على الرغم من أنها تشترك فقط في جزء من تنسيق PE وتكون في الغالب مختلفة داخليًا على أي حال. على نفس المنوال ، يعتبر wasm تنسيق المكتبة "الأصلي" لـ Webassembly ، وللسبب نفسه الذي جعل تسمية المكتبات المُدارة DLL: s (على الرغم من أنها ليست مثل DLL: s داخليًا) ، فمن المنطقي لتسميتهم wasm. من منظور أمني ، يشير DLL إلى "التنفيذ المحلي" بينما يشير مصطلح wasm إلى "تنفيذ المتصفح". للتوافق مع تنسيق wasm ، ربما يمكن تضمين تجميع .NET كبيانات لجعلها وصمة صالحة مع السلسلة الأولية السحرية وكلها.

الفكرة هنا هي أن هناك نظيرًا: wasm بالنسبة لـ MSIL هو PE بالنسبة لـ MSIL: تنسيق حاوية مجمعة. سابقة:

https://docs.microsoft.com/en-us/dotnet/standard/assembly-format

يعتمد التنسيق الثنائي .NET على تنسيق ملف Windows PE. في الواقع ، تعد مكتبات فئة .NET هي Windows PEs متوافقة ، وتظهر للوهلة الأولى على أنها مكتبات ارتباط ديناميكي لـ Windows (DLLs) أو برامج تنفيذية للتطبيق (EXEs). هذه خاصية مفيدة للغاية على Windows ، حيث يمكنهم التنكر كثنائيات قابلة للتنفيذ أصلية والحصول على بعض المعاملة نفسها (على سبيل المثال ، تحميل نظام التشغيل ، وأدوات PE).

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

إذا كان طراز Blazor لا يعمل بشكل جيد بنسبة 100٪ مع جدران الحماية الحالية ، فإنه يكاد يكون بمثابة سدادة عرض.

SteveSandersonMS آسف إذا كنت قد أجبت على هذا من قبل ، لكن هل تتصور أن هذا قابل للحل؟

بالطبع بكل تأكيد! سنقوم بتغيير عناوين URL أو تنسيق المحتوى حسب الحاجة.

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

JonnyGibson كما ذكر ستيف سابقًا ، نخطط لمعالجة هذا الأمر ، ولكن بروح Blazor كونه مشروعًا تجريبيًا ، فإننا نعطي الأولوية للعمل في الوقت الحالي الذي لا يُفهم جيدًا. نحن على يقين من أننا نعرف كيفية معالجة هذا الأمر.

إليك مثال آخر:
blazor antivirus

ربما يكون الحل هو السماح للمطور بتحديد الامتداد لتطبيق ما حتى تضيف جدران الحماية و AV دعمًا في القائمة البيضاء لأي امتداد يتم تحديده.

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

jonparkertorhovland أشعر أنه على عكس تحديد الامتدادات التي قد يتم حظرها أو لا يتم حظرها ، نحتاج إلى إيجاد طريقة تضمن عدم حظرها مطلقًا. لن يستخدم أحد إطار عمل سيؤدي إلى حظر موقع ويب في ظل بعض السيناريوهات (المحتملة جدًا).

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

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

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

لم أر أي قضايا أخرى أثيرت والتي هي أقرب إلى كونها عارضة أزياء.

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

WebSense هي الأداة التي تستخدمها شبكة شركتي للتحكم في الوصول إلى الويب. أنا متأكد تمامًا من أن مشكلة حظر Blazor هي مجرد حظر تنزيل ملف تنفيذي صريح.
https://www.websense.com/content/support/library/web/hosted/admin_guide/exten_block.aspx

يبدو أن AVG يحظر مشروع Blazor الخاص بي. https://files.gitter.im/aspnet/Blazor/Oc8w/image.png
blazor antivirus

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

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

بئر ... # 897 كان نسخة مكررة.

كان هذا خطأي
image

ربما يمكننا تعيين الامتداد كمعامل في UpdateIndex حيث نحصل عليه من سطر الأوامر (الافتراضي "dll"): https://github.com/aspnet/Blazor/blob/dev/src/Microsoft.AspNetCore.Blazor .Build / Core / IndexHtmlWriter.cs

إذا قمت بإرسال تصريح إقامة بخصوص هذا ، فهل سيتم النظر فيه؟

الرجاء إصلاح هذه المشكلة ، فهو العنصر الوحيد الذي يمنعني من اختبار هذا في المؤسسة.

اقتراح الإصلاح السريع إذا كنت تستخدم IIS مع وحدة عنوان url لإعادة الكتابة:

  • يمكنك تغيير جميع ملفات dll ". *. -module / create-outbound-rules-for-url-Rewrite-module)
  • أعد كتابة هذا الامتداد إلى dll بحيث يتم إرسال الملفات الجيدة إلى المتصفح (أو أعد تسمية ملفات dll بعد النشر)

قد تتمكن من القيام بذلك باستخدام .net core https://docs.microsoft.com/fr-fr/aspnet/core/fundamentals/url-rewriting؟view=aspnetcore-2.1&tabs=aspnetcore2x

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

لذلك يمكننا ببساطة حزم MyLib.dll كـ MyLib.zip (يحتوي على ملف MyLib.dll واحد داخل مضغوط). تكمن المشكلة في أن المتصفح سيكون في الأصل أسرع في فك ضغط محتويات الملفات مقارنةً بما إذا كان WASM / MONO باستخدام بعض تجميع .NET لفك ضغط محتوى الأرشيف المضغوط. سيكون هناك على الأقل تباطؤ 2x-3x لفك الضغط.

ولكن هناك حل: يمكننا حزم ملف MyLib.dll باسم MyLib.zip مع استخدام ضغط صفري ، ثم تركه لخادم الويب لضغط الملف (باستخدام أي تنسيقات ضغط يدعمها متصفح العميل عند طلب الملف). عندما يقوم المستعرض بتنزيل هذا الملف ، سيقوم بإلغاء ضغط المحتوى المستلم ، قبل أن يصل إلى Mono / WebAssembly. لذلك فإن وقت تشغيل Mono سيحتاج فقط إلى فك ضغط ملف .zip (والذي يكون في هذه المرحلة هو أرشيف zip الأصلي غير المضغوط).

آمل ألا يشعر أحد بالارتباك مما ورد أعلاه. أنا أقترح فقط استخدام .zip كتنسيق حاوية غير مضغوط ؛ ثم اسمح لمتصفح الويب وخادم الويب بالتعامل مع الضغط وإلغاء الضغط بالطريقة المعتادة لأي ملف مطلوب. لإعطاء مثال ملموس:

  1. 2 ميغابايت يحصل mscorlib.dll. مضغوط في 2 ميغابايت mscorlib.zip (لاحظ أننا قمنا بتعيين الضغط على NONE).
  2. يطلب مستعرض الويب mscorlib.zip (إرسال رؤوس Accept-Encoding المعتادة مع دعم طرق الضغط).
  3. يقوم خادم الويب بضغط محتوى mscorlib.zip وصولاً إلى 700 ميجابايت ويرسل ذلك إلى الخادم ، لذلك سيكون حجم الحزمة هو نفسه كما هو اليوم)
  4. يقوم مستعرض الويب (Chrome أو Edge ، إلخ) بفك ضغط المحتوى محليًا ، وسيتلقى وقت تشغيل Mono ملف mscorlib.zip الأصلي بسعة 2 ميغابايت ، والذي يمكن لـ WASM Mono فك ضغطه إلى ملف dll الأصلي بسرعة كبيرة نظرًا لعدم وجود أي ضغط داخلي مستخدم على هذا الأرشيف المضغوط الأصلي.

هذا مجرد اقتراح آخر لتضمينه في المجموعة. اقترحت أفكاري على أفكار أخرى:

  • آمل أن يكون ذلك كافيًا فقط لإزالة الامتداد ، كما هو الحال في MyLib.dll يصبح MyLib أو اقتراح MyLib_dll السابق.
  • أوافق أيضًا على أنه ينبغي أن يكون من الممكن "حزم" التجميع كبيانات داخل ملف .wasm (ولكن لا يزال داخليًا بتنسيق IL) بنفس الطريقة التي تستخدم بها تجميعات .NET تنسيق PE وتم إعطاؤها dll كملحق. لذلك يمكن أن يكون لدينا MyLib.w إذ أنه يخزن داخليًا IL كبيانات. العيب الوحيد الذي أراه هنا هو أنه عندما يكون لدينا تجميع AOT حقيقي ، قد يكون من الصعب معرفة ما إذا كان ملف .wasm يحتوي على كود مترجم IL أو Natively (WASM).

سيكون .dll هو الامتداد المناسب ويجب الاحتفاظ به كافتراضي. لا يعد إخفاء الغرض من الملف عن طريق تغيير الامتداد إلى .zip حلاً مثاليًا ، لأنه يتسبب في حدوث ارتباك. قد يكون من الأفضل عدم استخدام أي امتداد على الإطلاق وتسمية الملف مثل somedllname_v1_0_0_4321_ab5e8d5b97d141aca3c54776e82d2355
(هذا هو اسم المشروع وإصدار الملف وتجزئة SHA-256)

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

أتفق 100٪ مع @ MovGP0. يتعين على بائعي البرامج المساعدة على تحديث برامجهم. يستخدمون خوارزميات مختلفة لاكتشاف التعليمات البرمجية الضارة ويجب أن تكون تلك الخوارزميات ذكية بما يكفي لمنع الفيروسات والسماح بالبرامج الشرعية. أعتقد أن كل ماسح ضوئي للمركبات الحديثة يتحقق من محتوى كل أرشيف ، مضغوط ، 7z ، rar ، إلخ. تغيير امتداد اسم الملف أو التعبئة الزائفة ليس حلاً طويل المدى.

يبدو الأمر سخيفًا أن هذه مشكلة لأن الحظر يرجع إلى أسباب قديمة. هناك سيناريوهان مع Blazor لـ DLL:

  1. يتم تفسير كود IL قيد التشغيل في المستعرض: في هذه الحالة ، يكون رمز IL في DLL هو مجرد بيانات أولية ، ولا يوجد تهديد أكثر من ملف JPG أو XML الذي يعالجه المتصفح. هذا لأن IL الذي تم تنزيله يتم تفسيره بالكامل. لم يعد لمنتج الأمان أي عمل مع هذا أكثر مما يفعل مع أي ملف GIF أو XML أو TXT يقوم موقع الويب بمعالجته.

أو (في المستقبل)

  1. تم تجميع كود IL AOT إلى .wasm. في هذه الحالة ، سينشئ رمز IL .WASM ويجب أن تكون المشكلة الوحيدة هي كيفية معالجة منتجات الأمان هذه لملفات .wasm.

نقطة أخرى حول "التعبئة" هي أن هذا هو بالضبط ما تفعله العديد من أطر عمل جافا سكريبت بالفعل لتقليل الطلبات إلى الخادم: اجعل بعض البرامج النصية من جانب الخادم تجمع ديناميكيًا بين عدة نصوص منفصلة في ملف واحد. أود شخصياً أن أرى بعض المعالجات الذكية من جانب الخادم والتي يمكن أن تجمع ديناميكيًا 20 صغيرة (5 كيلو بايت) DLL لتقليل طلبات الخادم الأولية والسماح لي كمطور ببعض التحكم بشكل اختياري في ذلك أثناء تحميل الصفحة.

لكنني أعتقد أن فريق Blazor لديه ملاحظاتنا الآن وسيفعل كل ما هو معقول و / أو يوفر خيارات.

سأشير إلى أن وجهة النظر التي يجب أن ننتظرها حتى يقوم الجميع بتحديث منتجات الأمان الخاصة بهم لا تعمل لأنها ليست مجرد منتجات ، بل إن الشركات الكبيرة الحالية لن تقوم بشكل واقعي بإجراء تغييرات في التكوين على البنية التحتية لشبكتها. سيؤدي هذا إلى الإضرار حقًا باستخدام Blazor لأنه لا يتعلق فقط بأجهزة المسح الضوئي للمركبات ، بل يتعلق بمحاولة إخبار الموظفين داخل قسم تكنولوجيا المعلومات في شركة كبيرة مثل News Corporation أو Bhp Billiton بإجراء تغييرات في تكوين الشبكة. تتغير الثقافة ، ولكن لا يزال هناك العديد من الموظفين في تلك الأقسام الذين لن يهتموا (أو يبتسمون بنشاط) إذا تسبب ذلك في مشكلات Blazor ☹.

  • أعتقد أن كل ماسح ضوئي سمعي حديث يتحقق من محتوى كل أرشيف و zip و 7 z و rar وما إلى ذلك.
    تجربتي الشخصية على مدار العقد الماضي هي أنه عندما تكون بصيغة zip ، يكون كل شيء على ما يرام عادةً. عادة ما يتم حظر الأشياء إذا كانت الملفات هي. exe أو. dll. داخل أرشيف مضغوط ، ستحظر معظم المنتجات الملف المضغوط فقط إذا اكتشفت توقيعًا فعليًا معروفًا لبرامج ضارة داخل أرشيف مضغوط (ليس فقط بسبب وجود ملف dll بالداخل). لكني أقر بأن كل منتج مختلف ، لذا لا توجد أي ضمانات هنا.
    من: Andrzej-W [email protected]
    تاريخ الإرسال: الأربعاء ، 6 يونيو 2018 5:38 صباحًا
    إلى: aspnet / Blazor [email protected]
    نسخة إلى: jiggyswift [email protected] ؛ التعليق [email protected]
    الموضوع: Re: [aspnet / Blazor] ضع في اعتبارك تغيير عناوين URL لتجميعات .NET بحيث لا تنتهي بـ .dll (# 172)

أتفق 100٪ مع @ MovGP0 https://github.com/MovGP0 . يتعين على بائعي البرامج المساعدة على تحديث برامجهم. يستخدمون خوارزميات مختلفة لاكتشاف التعليمات البرمجية الضارة ويجب أن تكون تلك الخوارزميات ذكية بما يكفي لمنع الفيروسات والسماح بالبرامج الشرعية. أعتقد أن كل ماسح ضوئي للمركبات الحديثة يتحقق من محتوى كل أرشيف ، مضغوط ، 7z ، rar ، إلخ. تغيير امتداد اسم الملف أو التعبئة الزائفة ليس حلاً طويل المدى.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/aspnet/Blazor/issues/172#issuecomment-394834055 ، أو كتم صوت سلسلة المحادثات https://github.com/notifications/unsubscribe-auth/AmF6aIkiXWAVe282A0YSh_a7bgmGPGN4SUks5 .

كان لديّ شخصان من فريق أمان الشركة يأتون إلى مكتبي بعد أن تصفحت موقع mono wasm ، والذي يقوم بتنزيل hello.exe . أعتقد أنه تم اختياره بواسطة "Symantec Endpoint Protection".

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

من: Harry McIntyre [email protected]
تاريخ الإرسال: الخميس ، 7 يونيو 2018 الساعة 8:36 مساءً
إلى: aspnet / Blazor [email protected]
نسخة إلى: jiggyswift [email protected] ؛ التعليق [email protected]
الموضوع: Re: [aspnet / Blazor] ضع في اعتبارك تغيير عناوين URL لتجميعات .NET بحيث لا تنتهي بـ .dll (# 172)

كان لديّ شخصان من فريق أمن الشركة أتوا إلى مكتبي بعد أن تصفحت موقع mono wasm example https://nam01.safelinks.protection.outlook.com/؟url=http٪3A٪2F٪2Fwww.hipbyte.com ٪ 2F٪ 257Elrz٪ 2Fmono-الوسم، مرحبا والبيانات = 02٪ 7C01٪ 7C٪ 7Cf21af207f881447e8d5d08d5cc627621٪ 7C84df9e7fe9f640afb435aaaaaaaaaaaa٪ 7C1٪ 7C0٪ 7C636639645608861860 وsdata = Cp9wUKXElAX4z39zarw0DQOlhHo3ZY0MtSRdz8j5YDw٪ 3D & محفوظة = 0 ، الذي بتنزيل hello.exe. أعتقد أنه تم اختياره بواسطة "Symantec Endpoint Protection".

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، واعرضها على GitHub https://nam01.safelinks.protection.outlook.com/؟url=https٪3A٪2F٪2Fgithub.com٪2Faspnet٪2FBlazor٪2Fissues٪2F172٪23issuecomment-395374377&data=02 ٪ 7C01٪ 7C٪ 7Cf21af207f881447e8d5d08d5cc627621٪ 7C84df9e7fe9f640afb435aaaaaaaaaaaa٪ 7C1٪ 7C0٪ 7C636639645609018105 وsdata = A9rl39HzRP7w9mzRkqPKrG4zsHJKkVIy2jwJ0e9nc3g٪ 3D & محفوظة = 0 ، أو كتم موضوع https://nam01.safelinks.protection.outlook.com/؟url=https٪3A٪2F٪2Fgithub. كوم٪ 2Fnotifications٪ 2Funsubscribe-المصادقة٪ 2FAmF6aG9lvmy2g93BQQmI-5mbrGICanCxks5t6QIPgaJpZM4SUpej والبيانات = 02٪ 7C01٪ 7C٪ 7Cf21af207f881447e8d5d08d5cc627621٪ 7C84df9e7fe9f640afb435aaaaaaaaaaaa٪ 7C1٪ 7C0٪ 7C636639645609018105 وsdata = yZhLQXXqqp0hLEtD3mTowdoI4EpBu5qNNR0UI4tZDm8٪ 3D & محفوظة = 0 .

ربما يكون مفيدا:

من https://www.cisco.com/c/en/us/td/docs/security/firepower/623/configuration/guide/fpmc-config-guide-v623/file_policies_and_advanced_malware_protection.html

يمكن للنظام فحص ما يصل إلى ثلاثة مستويات من الملفات المتداخلة أسفل ملف الأرشيف الخارجي (المستوى 0) إذا كان الملف عبارة عن أرشيف (مثل ملفات أرشيف بتنسيق .zip أو .rar). يمكنك فحص ملفات الأرشيف الكبيرة مثل الحجم الأقصى للملف لتخزين إعداد التحكم المتقدم في الوصول.
إذا كان أي ملف فردي يطابق قاعدة ملف مع إجراء حظر ، فإن النظام يحظر الأرشيف بأكمله ، وليس الملف الفردي فقط. يمكن للنظام أيضًا حظر الأرشيفات التي تتجاوز مستوى معينًا من التداخل ، أو التي تكون محتوياتها مشفرة أو لا يمكن فحصها بأي طريقة أخرى.

رابط آخر (مرر إلى "ميزة أنواع الملفات"):
https://supportcenter.checkpoint.com/supportcenter/portal؟eventSubmit_doGoviewsolutiondetails=&solutionid=sk105318&js_peid=P-14d3e69bf07-10000

لقد وجدت حلاً موصوفًا هنا: https://remibou.github.io/Change-Blazor-DLL-extension-with-ASPNET-Core/. قد لا يساعد في كل حالة و AV لكنها نقطة البداية.

RemiBou رجل ... هذا رائع :) اصطياد جيد على استخدام URLRewrite لذلك! 👍

فيما يتعلق بموضوع استبدال ملحق dll ، أود الضغط من أجل امتداد wasm (حتى لو لم يكن صحيحًا تقنيًا) لأن صفحات github و cloudflare وربما معظم شبكات CDN تتعامل بالفعل مع الضغط لـ "application / wasm" ولكن ليس لـ "application / octet-Stream "لذا فإن وزن تطبيق Blazor الافتراضي يبلغ حوالي 3.2 ميغابايت مع وجود ضغط أحادي فقط مع brotli. في النهاية ، ستكون مكتبات Blazor بالفعل عبارة عن wasm على أي حال عندما يكون تجميع AOT في مكانه ، أليس كذلك؟

لقد اختبرت للتو خدعة RemiBou باستخدام امتداد wasm وإعادة تسمية dlls قبل دفعها إلى صفحات gh والآن يبلغ التحديث البارد 1.9 ميغابايت كما ينبغي: رائع! RemiBou شكرا !!

لكن برنامج Avast المضاد للفيروسات أصبح مجنونًا في البداية لأن جميع ملفات wasm المزيفة هذه مصابة بـ DRep وحصلت على نفس نافذة التنبيه مثل jorisvergeer . بعد إجراء بحث سريع ، أعتقد أنه يمكن حل المشكلة من خلال تنزيل مكتبات wasm المزيفة من موقع يتمتع بسمعة أفضل من النطاق الفرعي الذي أنشأته مؤخرًا ، لكنني أخمن الآن فقط.

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

سيكون من الرائع أن نحاول تجميع ملفات dlls مسبقًا إلى ملفات wasm ثم نتمكن من تنزيلها بدلاً من ذلك. (آمل أن ينجح ذلك)

403forbidden.pdf

تم إنشاء الرسالة 403 محظورة في المنشور السابق بواسطة جدار الحماية zscaler الخاص بنا.

ما هي أفضل طريقة لإبراز هذه المشكلة وإبراز الأولوية لها حتى يتم أخذها في الاعتبار في سباق العدو في المستقبل؟

rynowakSteveSandersonMSmkArtakMSFT نحن بحاجة للتأكد من أن لدينا حلًا لهذا الأمر ، لذا ننتقل إلى معلم Blazor-wasm.

لقد أنشأت مستندًا يصف الحل الذي أستخدمه الآن للتغلب على ملفات dll التي تم حظرها بواسطة zScaler.

https://github.com/jucchytil/CSBNotes/blob/master/Notes.md

أظن أننا قد نحتاج إلى التفكير في حل مماثل لملفات WASM حيث يوجد احتمال أن يستغرق مصنعو جدران الحماية بعض الوقت لقبول ملفات wasm باعتبارها آمنة خلال العامين المقبلين.

إنني أتطلع حقًا إلى PublishSingleFile / PublishTrimmed / TargetFramework = wasm ، لذلك ليس لدينا سوى ملف واحد صغير نسبيًا لإدارته في عامل الخدمة.

افكارك؟

شكرا دان!
أنا ممتن لأن هذا حصل على بعض الاهتمام.
لقد قمت بنشر الحل المؤقت الخاص بي على https://github.com/aspnet/AspNetCore/issues/5477
نأمل أن تساعد بطريقة ما.
جو

من: Daniel Roth [email protected]
تاريخ الإرسال: الجمعة 11 أكتوبر 2019 الساعة 10:33 صباحًا
إلى: aspnet / AspNetCore [email protected]
نسخة إلى: jucchytil [email protected] ؛ التعليق [email protected]
الموضوع: Re: [aspnet / AspNetCore] ضع في اعتبارك تغيير عناوين URL لتجميعات .NET بحيث لا تنتهي بـ .dll (# 5477)

rynowak https://eur01.safelinks.protection.outlook.com/؟url=https٪3A٪2F٪2Fgithub.com٪2Frynowak&data=02٪7C01٪7C٪7Cecf83fca357f4abe690d08d74e604c75٪7C84df9e7fe9f640afb435aaaaaaaaaaaa٪7C1٪7C0٪7C637064047810603291&sdata=N5o8HJ7٪2FM1UInuoFp1HXbY9AqDhM8BCm ٪ 2F0IGZujyqqI٪ 3D & محجوز = 0 @ SteveSandersonMS https://eur01.safelinks.protection.outlook.com/؟url=https٪3A٪2F٪2Fgithub.com٪2FSteveSandersonMS&data=02٪7C01٪7C٪7Cecf83fca357f4٪1 ٪ 7C637064047810613296 وsdata = vDuSWWEJ0CGf7ex7TStTMrHH1E27V5eza٪ 2FMJKIkr٪ 2BeY٪ 3D & محفوظة = 0 mkArtakMSFT https://eur01.safelinks.protection.outlook.com/؟url=https٪3A٪2F٪2Fgithub.com٪2FmkArtakMSFT&data=02٪7C01٪7C٪7Cecf83fca357f4abe690d08d74e604c75 ٪ 7C84df9e7fe9f640afb435aaaaaaaaaaaa٪ 7C1٪ 7C0٪ 7C637064047810623307 & sdata = ltzBUDC4c8o9kPvFmBlIOHN1B٪ 2BUI2Fj٪ 2FspG4BDCIo٪ 28٪ لدينا حاجة إلى الانتقال إلى الحل ثلاثي الأبعاد.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، واعرضها على GitHub https://eur01.safelinks.protection.outlook.com/؟url=https٪3A٪2F٪2Fgithub.com٪2Faspnet٪2FAspNetCore٪2Fissues٪2F5477٪3Femail_source٪3Dnotifications٪26email_token ٪ 3DAEBYRE4UUUJDL3KHNPOYYJ3QOCMCVA5CNFSM4GK4V5L2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBALS2Y٪ 23issuecomment-541112683 والبيانات = 02٪ 7C01٪ 7C٪ 7Cecf83fca357f4abe690d08d74e604c75٪ 7C84df9e7fe9f640afb435aaaaaaaaaaaa٪ 7C1٪ 7C0٪ 7C637064047810633312 وsdata = qxqf5LstFcAUsEgSImIxMMOw33sNOgku09qw٪ 2FJp3Z18٪ 3D & محفوظة = 0 ، أو إلغاء الاشتراك https://eur01.safelinks.protection.outlook.com/؟url= HTTPS٪ 3A٪ 2F٪ 2Fgithub.com٪ 2Fnotifications٪ 2Funsubscribe-المصادقة٪ 2FAEBYRE2MQUF65CHXQD54OWDQOCMCVANCNFSM4GK4V5LQ والبيانات = 02٪ 7C01٪ 7C٪ 7Cecf83fca357f4abe690d08d74e604c75٪ 7C84df9e7fe9f640afb435aaaaaaaaaaaa٪ 7C1٪ 7C0٪ 7C637064047810643323 وsdata = yx154tNWkGvXlXbVJNjvswed9hG0zr91HFqIhMVLCfo٪ 3D & محفوظة = 0 .

مجرد متابعة لطلب من دانيال روث على مدونته ، الذي طلب مني نشر اسم مزود استضافة الويب الخاص بي هنا ، حتى تتمكن من اختبار هذه المشكلة. يمكن العثور على تعليق المدونة هنا: - https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0/#comment -955

موفر الاستضافة المعني هو infinityfree.net. إنها مجانية ، لذا سيكون من السهل تجربتها!

بشكل أساسي ، عند تحميل الموقع ، سيحذف الخادم الخاص بهم حوالي نصف ملفات DLL من المجلد _framework \ bin \. اعتقدت في الأصل أن شيئًا ما قد حدث خطأ وحاولت مرارًا تحميل الملفات المفقودة. في النهاية بدا أنهم "يلتصقون" ، كما لو أن خادمهم قد تخلى عن فحص الفيروسات للملفات الجديدة ، وبعد يوم واحد ما زالوا هناك (على الرغم من أنه ربما سيتم مسحهم في النهاية).

على أي حال ، يرجى إضافة تصويتي للحصول على حل مناسب مثل إعادة تسمية مكتبات DLL.

@ andyste1 شكرا على المعلومات. هل تحققت وأكدت أنه إذا تمت إعادة تسمية الملفات ، فلن يتم حذفها؟ إذا كانت شركة الاستضافة تقوم بذلك بناءً على المحتوى بدلاً من الاسم ، فلن تكون إعادة التسمية بالضرورة حلاً.

قد لا تساعد إعادة التسمية كثيرًا - القلق متاح بالفعل لتحقيق ذلك.
بالنسبة لي ، تكمن المشكلة في تنسيق PE للملف - فبرنامج مكافحة الفيروسات ، Sophos ، سوف يحظر الملفات في كل مرة أعيد تسميتها ، لأنه قام بفحص محتوى الملف أيضًا. لحسن الحظ ، تسمح Sophos بتنزيل ملفات DLL (تنسيق PE) عبر HTTPS (وليس HTTP).

lertoo نحن نناقش إمكانية إزالة بيانات تعريف PE من التجميعات لتقليل الحجم ، ولكنها قد تساعد أيضًا في حل هذه المشكلة.

إصدار Norton Antivirus الخاص بهذه المشكلة: https://forums.asp.net/t/2161027.aspx

من المحتمل جدًا ألا يتسبب امتداد الملف فقط ، ولكن رأس الملف أيضًا في حدوث مشكلة مع بعض البرامج المصابة بجنون العظمة. لن يساعد التعتيم عندما تكون المشكلة تتعلق بالرأس ، باستثناء JS الذي يبدأ تشغيل Blazor VM لا يستبدلها يدويًا في الذاكرة بطريقة ما ، لكنها لقطة طويلة.

الحل الحالي الخاص بي هو توفير إصدار مشفر Base64 من كل DLL في خط أنابيب CI / CD الخاص بي ، باستخدام عامل خدمة لاكتشاف 403 من جدار الحماية لـ DLL ، وتنزيل إصدار Base64 من ملف DLL النصي ، وتحويل Base64 مرة أخرى إلى DLL في عامل الخدمة قبل تخزينها مؤقتًا في المستعرض.

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

Blazor WebAssembly آخر إيجابي كاذب:

image

لقد كنت أنتظر منذ أوائل عام 2018 حتى يتم حل هذه المشكلة :) أحب / أحببت Blazor ، ولكن هذا يبدو وكأنه سدادة عرض محتملة ، إذا تعذر تغيير dlls

JonnyGibson شكرا لك على صبرك! نحن نعمل للحصول على نوع من الحل لهذه المشكلة للإصدار القادم في مايو من هذا العام.

هذه مشكلة طويلة جدًا لذا حاولت تلخيص كل هذا هنا:

مضاد للفيروسات

  • NOD32 (إسيت)
  • AVG v. 18.1.3044 (+3)
  • فحص حركة مرور الويب
  • أفاست (+3)
  • برنامج Symantec Endpoint Protection
  • zScaler

إعادة تسمية الاقتراحات

  • .blazor (+35)
  • .bin (+3)
  • .lib
  • .ilasm (+6)
  • .net (+14)
  • .wasm (-8)
  • [مخصص] (+1)
  • [لا أحد]

يستخدم الحل البديل

  • إعادة تسمية الامتداد
  • تشفير BASE64 DLLs

ملاحظات عامة

  • .DLLs و .EXEs هي امتدادات تحظرها العديد من المؤسسات على مستوى جدار الحماية ، كسياسة.
  • كانت هناك تقارير عن امتدادات أعيدت تسميتها تم الإبلاغ عنها أيضًا بواسطة برامج مكافحة الفيروسات

تضمين التغريدة
قد ترغب أيضًا في تضمين zScaler في مكان ما في ملخصك لأن هذا هو ما كان يمنع تنزيلاتي.

تتمثل إحدى طرق الاختبار في تحويل جميع الملفات التنفيذية إلى ملفات wasm لأنني لا أتذكر وجود مشاكل في zScaler معهم.

لقد انتقلت مؤقتًا إلى Angular حتى يعمل برنامج Blazor من جانب العميل على حل هذه المشكلات ولديه أوقات تنزيل أولية أفضل.

لقد قضيت الكثير من الوقت في محاولة تشغيل برنامج بليزر من جانب العميل وقررت الانتظار حتى تنضج المنصة أكثر.
https://github.com/jucchytil/CSBNotes/blob/master/Notes.md

javiercn ، دعنا نتتبع إعادة تسمية امتداد الملف هنا وسأقدم مشكلة منفصلة للمتابعة مع موفري مكافحة الفيروسات بخصوص هذا الأمر.

الإجراء المطلوب

🎫
لقد قمت للتو بإنشاء مشكلة جديدة حيث سنحاول جمع جميع البرامج المحددة التي تحظر تطبيقات Blazor WASM. يرجى تقديم معلومات خاصة بحالتك كما هو موضح هنا: https://github.com/dotnet/aspnetcore/issues/19552

في ملاحظة جانبية ، تقوم شبكات CDN مثل صفحات github و cloudflare بضغط الأصول بامتداد wasm خارج الصندوق أثناء تقديم نسخة غير مضغوطة لملفات dll. إذا كنت أتذكر بشكل صحيح ، يجب أن تتصرف Azure CDN بنفس الطريقة.

لقد عانينا من هذا اليوم. لن يكون رفع القيود المفروضة على تنزيل DLL خيارًا. ليس فقط بالنسبة لنا ، ولكن من غير المرجح أن يقوم عملاؤنا بإزالة هذا التقييد أيضًا - لذلك نحتاج حقًا إلى إصلاح لهذا الأمر وإلا فإن مشروع Blazor الخاص بنا قد مات في الماء (صاحب العمل غير راغب في استخدام جانب الخادم).

أعتقد أن جدار الحماية لدينا هو Palo Alto.

mrpmorris ، هل يمكنك وضع التفاصيل في https://github.com/dotnet/aspnetcore/issues/19552 حيث نقوم بجمعها حتى نتمكن من إشراك البائعين.

mrpmorris هل أدى تغيير الامتداد إلى حل المشكلة في السيناريو الخاص بك؟

مرحبًا javiercn

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

سأكون سعيدا للتحقق من خيار إعادة التسمية. هل لديك رابط لإرشادات حول كيفية تشغيل Blazor مع ملحقات .wasm أو أي شيء آخر؟ في الوقت الحالي ، أقوم فقط بالنقر بزر الماوس الأيمن فوق مشروع خادم الويب الخاص بي واختيار Publish مباشرة إلى تطبيق Azure Web App.

mrpmorris يمكنك مراجعة التعليمات هنا
https://github.com/dotnet/aspnetcore/pull/19558#issuecomment -594461263

mrpmorris يرجى ملاحظة أن هذه التعليمات تنطبق فقط على أحدث إصداراتنا 3.2.0-preview2 وأن الترقية من 3.2.0-preview1 ستتطلب القليل من العمل باستخدام الخطوات التي لم ننشرها بعد. قد ترغب في الانتظار حتى نصدر في وقت لاحق من هذا الشهر.

@ danroth27 لا أعتقد أنك نشرت Preview2 بعد ... :)

يمكنك تجربة ذلك مع الإصدارات الليلية باتباع الإرشادات هنا إذا اخترت القيام بذلك.

أوصي بمسح ذاكرة التخزين المؤقت لحزمة nuget قبل وبعد إذا اخترت القيام بذلك. ضع في اعتبارك أن مسح ذاكرات التخزين المؤقت سيؤثر على الجهاز بأكمله (جميع التطبيقات في هذا الجهاز)

سأنتظر حتى يتم إطلاق الإصدار p2 ثم جربه. شكرا!

mrpmorris 3.2 المعاينة 2 متاح الآن! هل تعمل الخطوات المقترحة في https://github.com/dotnet/aspnetcore/pull/19558#issuecomment -594461263 لإعادة تسمية الملفات من أجلك؟

مرحبا يا رفاق!

في الإصدار الأخير من Blazor WebAssembly 3.2 Preview 2 ، أجرينا بعض التغييرات لتسهيل إعادة تسمية ملفات .dll في تطبيقك كطريقة لمعالجة الوكلاء / الجدران النارية / برامج مكافحة الفيروسات التي تتداخل مع تطبيقات Blazor WebAssembly. نود من الأشخاص الذين يواجهون هذه المشكلة تجربة الخطوات أدناه حول الإخراج المنشور لتطبيقات Blazor WebAssembly (المستضافة أو ASP.NET Core المستضافة) ومعرفة ما إذا كانت تساعد:

شبابيك

  • افتح موجه PowerShell في الدليل wwwroot للمخرجات المنشورة (على سبيل المثال ، في yourapp\bin\Release\netstandard2.1\publish\wwwroot
  • قم بتنفيذ السطرين التاليين:
dir .\_framework\_bin | rename-item -NewName { $_.name -replace ".dll\b",".bin" }
((Get-Content .\_framework\blazor.boot.json -Raw) -replace '.dll"','.bin"') | Set-Content .\_framework\blazor.boot.json

لينكس / ماك

  • افتح Terminal في الدليل wwwroot للمخرجات المنشورة (على سبيل المثال ، في yourapp/bin/Release/netstandard2.1/publish/wwwroot
  • قم بتنفيذ السطرين التاليين:
for f in _framework/_bin/*; do mv "$f" "`echo $f | sed -e 's/\.dll\b/.bin/g'`"; done
sed -i 's/\.dll"/.bin"/g' _framework/blazor.boot.json

يرجى تجربة هذه الخطوات وإخبارنا كيف تسير الأمور. إذا كنت لا تزال تواجه مشاكل ، فيرجى إخبارنا بذلك! لدينا بعض الأفكار الأخرى لتجربتها إذا لزم الأمر.

شكرا!

هذا عمل لي. على الرغم من أنني اضطررت إلى تعديل خطوة النشر الخاصة بي على Azure DevOps وإلغاء التنشيط ، فإنه ينشئ ملفًا مضغوطًا في النهاية.

في حالتي:

- task: DotNetCoreCLI<strong i="7">@2</strong>
  displayName: 'dotnet publish'
  inputs:
    command: 'publish'
    publishWebProjects: false
    zipAfterPublish: false
    projects: |
      **/ApplySupportTool.Server.csproj
    arguments: '--configuration $(buildconfiguration)  --output $(Build.ArtifactStagingDirectory)'

- task: PowerShell<strong i="8">@2</strong>
  displayName: Change Outputname
  inputs:
    targetType: 'inline'
    workingDirectory: $(Build.ArtifactStagingDirectory)\ApplySupportTool.Server\wwwroot
    script: |
         dir .\_framework\_bin | rename-item -NewName { $_.name -replace ".dll\b",".bin" }
         ((Get-Content .\_framework\blazor.boot.json -Raw) -replace '.dll"','.bin"') | Set-Content .\_framework\blazor.boot.json

NPadrutt عملت بأي معنى؟ بمعنى أنك لاحظت بشكل قاطع أن موقعك لم يكن يعمل من قبل (بسبب نوع من برامج مكافحة الفيروسات أو جدار الحماية) ، وتغيير عناوين URL قد أصلح هذا؟ إذا كانت هذه هي الحالة ، فهل ستتمكن من نشر تفاصيل عن برنامج مكافحة الفيروسات / جدار الحماية / إلخ الذي تسبب في حدوث مشكلات لك من قبل على https://github.com/dotnet/aspnetcore/issues/19552؟ شكرا!

SteveSandersonMS حسنًا ، لقد سبق لي أن أعمل حول عبر أداة إعادة الكتابة في المكان. بعد الترقية إلى الإصدار 3.2 للمعاينة 2 ، لم يعد أحد يعمل وتم حظر التطبيق مرة أخرى. مع ما ورد أعلاه أنها تعمل مرة أخرى.

لسوء الحظ ، لا يمكنني إخبارك بجدار الحماية الموجود في شبكتنا ولا أعتقد أن برنامج مكافحة الفيروسات (McAffee) له تأثير هنا ، نظرًا لأن العمل محليًا كان يعمل بدون مشاكل.

ثبت إصابة شخص ما في مكتبي بفيروس COVID-19 ، لذلك يبدو أن مكتبي سيغلق لبضعة أسابيع - مما يعني أنني لن أصل إلى الملفات من خلال جدار الحماية الخاص به. آسف.

تضمين التغريدة ابق بأمان!

مرحبا يا رفاق!

في الإصدار الأخير من Blazor WebAssembly 3.2 Preview 2 ، أجرينا بعض التغييرات لتسهيل إعادة تسمية ملفات .dll في تطبيقك كطريقة لمعالجة الوكلاء / الجدران النارية / برامج مكافحة الفيروسات التي تتداخل مع تطبيقات Blazor WebAssembly. نود من الأشخاص الذين يواجهون هذه المشكلة تجربة الخطوات أدناه على _ الإخراج المنشور_ لتطبيقات Blazor WebAssembly (المستقلة أو المستضافة ASP.NET Core) ومعرفة ما إذا كانت تساعد:

@ danroth27

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

نظرًا لحالة الوباء ، سوف يمر وقت قصير قبل أن نتحقق من حالة جدار حماية الشركة.

هذه خطوة بسيطة بما يكفي لإضافتها إلى التصميم ويبدو أنه ليس لها جانب سلبي ، لذلك سنبدأ في استخدامها.

شكرا!

@ danroth27 هل سيكون هذا هو الخيار الافتراضي في وقت ما ، لذا لا نحتاج إلى القيام بهذه الخطوة؟ هل هناك حقًا أي سبب لعدم الانتقال فقط إلى .bin أو عدم الانتقال إلى نوع الملف على أنه الإعداد الافتراضي بدلاً من مطالبة الجميع بالقيام بذلك إذا كانت هناك مشكلة عامة في نوع الملف dll.؟

هل هناك أي احتمال أن يقوم مدقق الفيروسات بفحص الملف حتى لو لم يكن ".dll" لمعرفة ما إذا كان ملف dll؟

تضمين التغريدة
حصلت على الكثير من الأخطاء في وحدة تحكم المتصفح المتعلقة بفشل التكامل أو لم يتم العثور على الملف:

_framework/_bin/Blazored.LocalStorage.dll:1 Failed to load resource: the server responded with a status of 404 ()
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/BlazorStrap.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.AspNetCore.Blazor.HttpClient.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.AspNetCore.Components.dll:1 Failed to load resource: the server responded with a status of 404 ()
_framework/_bin/Microsoft.AspNetCore.Components.Authorization.dll:1 Failed to load resource: the server responded with a status of 404 ()
_framework/_bin/Microsoft.AspNetCore.Components.WebAssembly.Authentication.dll:1 Failed to load resource: the server responded with a status of 404 ()
_framework/_bin/Microsoft.AspNetCore.Authorization.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.AspNetCore.Components.Web.dll:1 Failed to load resource: the server responded with a status of 404 ()
_framework/_bin/Microsoft.AspNetCore.Components.Forms.dll:1 Failed to load resource: the server responded with a status of 404 ()
_framework/_bin/Microsoft.AspNetCore.Components.WebAssembly.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
admin:1 Unknown error occurred while trying to verify integrity.
admin:1 Unknown error occurred while trying to verify integrity.
admin:1 Unknown error occurred while trying to verify integrity.
admin:1 Unknown error occurred while trying to verify integrity.
admin:1 Unknown error occurred while trying to verify integrity.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
blazor.webassembly.js:1 Error: Failed to start platform. Reason: TypeError: Failed to fetch
    at blazor.webassembly.js:1
    at blazor.webassembly.js:1
    at Object.throw (blazor.webassembly.js:1)
    at u (blazor.webassembly.js:1)
d.printErr @ blazor.webassembly.js:1
_framework/_bin/Microsoft.AspNetCore.Metadata.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Bcl.HashCode.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.CSharp.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.EntityFrameworkCore.Abstractions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Caching.Abstractions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.EntityFrameworkCore.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.EntityFrameworkCore.Relational.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Caching.Memory.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Configuration.Abstractions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Configuration.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Configuration.Json.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.DependencyInjection.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Identity.Core.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Identity.Stores.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Logging.Abstractions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Logging.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Options.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Primitives.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.JSInterop.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Mono.Security.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/MovingPicturesEvents.Core.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/MovingPicturesEvents.Services.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/mscorlib.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/MovingPicturesEvents.Web.Client.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/netstandard.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Radzen.Blazor.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Collections.Immutable.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.ComponentModel.DataAnnotations.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Core.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Data.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Diagnostics.DiagnosticSource.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Linq.Dynamic.Core.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Net.Http.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Net.Http.Json.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Numerics.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Runtime.CompilerServices.Unsafe.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Text.Encodings.Web.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Text.Json.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Transactions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Xml.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Xml.Linq.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/WebAssembly.Bindings.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/WebAssembly.Net.Http.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.

لقد جربت الخطوات @ danroth27 المذكورة على كل من Windows وعلى حاوية Linux Docker بنفس النتائج.

استخدام 3.2 المعاينة 4.

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

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

mihaimyh يبدو أنه قد يكون لديك سياسة أمان محتوى تمت تهيئتها بشكل خاطئ؟

mihaimyh يبدو أنه قد يكون لديك سياسة أمان محتوى تمت تهيئتها بشكل خاطئ؟

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

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

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

@ danroth27 حسنًا ، وأعتقد أنه يمكنني تجاوز فحص النزاهة عن طريق الإضافة

<BlazorCacheBootResources>false</BlazorCacheBootResources>

إلى ملفات .csproj الخاصة بي ولكن لا يزال لدي حدث 404 مع تعطيل فحص النزاهة.

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

تأكد من إضافة شيء مثل هذا في البرنامج النصي "dll rename" الخاص بك

# Remove compressed versions of blazor.boot.json because it still looks for .dll files
Remove-Item ".\_framework\blazor.boot.json.gz"
Remove-Item ".\_framework\blazor.boot.json.br"

في معظم الأوقات ، سيتم تنزيل ملف blazor.boot.json المضغوط مسبقًا بدلاً من ملف blazor.boot.json "الثابت" الذي يطلب ملفات ".dll" بدلاً من ملفات ".bin" التي تسبب مشكلة التكامل.

لذلك عليك إما إزالة ملفات json المضغوطة أو إعادة ضغط blazor.boot.json لكنني لا أعتقد أن الأمر يستحق أن تمر بهذه المتاعب.

نأمل يومًا ما أن يتم التعامل مع كل هذا من خلال إطار العمل بعلم في csproj ، على سبيل المثال

<BlazorBinariesExtension>.bin</BlazorBinariesExtension>

مرحبا يا رفاق. في هذه المرحلة ، قمنا بتوثيق الإستراتيجية التي نوصي بها لتغيير امتداد الملف لتجميعات .NET المنشورة باستخدام البرامج النصية. أعتقد أن اقتراح stavroskasidis لا يزال جيدًا لتوفير طريقة مضمنة بسيطة للقيام بذلك ، لذلك فتحت https://github.com/dotnet/aspnetcore/issues/21489 لتتبع الاقتراح. في هذه المرحلة ، أعتقد أننا مستعدون لإغلاق هذه المشكلة. شكرا للجميع لردود الفعل المفصلة المقدمة!

من ما يمكنني رؤيته ، يجب أن تتم إعادة التسمية من .dll إلى .bin أيضًا في wwwroot/service-worker-assets.js وإزالة أو إعادة ضغط wwwroot/service-worker-assets.js.br و wwwroot/service-worker-assets.js.gz ، وإلا فهناك مشاكل تتعلق بالنزاهة وحدة تحكم المتصفح.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات