[ad_1]
أهلاً،
لدي تطبيق ويب .net 6، ويتمتع بمصادقة إعلان Azure. التطبيق محاط ببوابة تطبيق azure. يتم حظر قواعد WAF الخاصة بالبوابة وتقوم بإرجاع خطأ 403 من البوابة.
السبب الجذري: تعمل مصادقة Microsoft Identity Web على إنشاء ملفات تعريف الارتباط ذات أحرف خاصة مثل الواصلة المزدوجة (–)، ويعتبرها regex WAF كتعليق SQL وتحظر هذا الطلب.
ما حاولت:
لقد حاولت كتابة برامج وسيطة مخصصة لتشفير وفك تشفير ملفات تعريف الارتباط، لكنها لا تعمل.
أنا أيضًا غير قادر على فهم التدفق أيضًا، نظرًا لأن المفهوم ليس واضحًا بالنسبة لي وكأنني أقوم بفك تشفير ملفات تعريف الارتباط وترميزها في رمز الخادم في البرامج الوسيطة، ولكن عندما يرسل المستخدم طلبًا إلى تطبيق الويب، فسيأتي أولًا إلى البوابة وهناك سيتم حظره عن طريق البوابة. لست متأكدًا من كيفية عمل هذا النوع من الحلول.
يرجى مشاركة اقتراحاتك إذا كنت قد واجهت هذه المشكلة بصرف النظر عن حظر القواعد في بوابة التطبيق. أو كيف سيتم حلها في الواقع
الحل 1
نلقي نظرة على قواعد Azure Web Application Firewall (WAF) v2 المخصصة على بوابة التطبيق | مايكروسوفت تعلم[^].
الحل 2
هذا ليس مجال خبرتي على الإطلاق أو حتى قريبًا منه… ومع ذلك، فقد وجدت السؤال مثيرًا للاهتمام وبدأت في البحث على Google، ونعم، أعرف بعض نصائح الذكاء الاصطناعي.
يبدو أنه تم تنفيذ البرامج الوسيطة المخصصة لتشفير ملفات تعريف الارتباط وفك تشفيرها بشكل صحيح
يبدو أنك بحاجة إلى التأكد من تضمين أي رؤوس تمت إضافتها أثناء التشفير/فك التشفير في الطلبات الصادرة.
تأكد من أن بوابة تطبيق Azure الخاصة بك ليست مقيدة بشكل مفرط، وفكر في تعديل قواعد WAF إذا لزم الأمر، لقد رأيت التعليق الذي يفيد بأنه ليس لديك سيطرة على هذا، ما عليك سوى التحقق من الحالة وتأكيدها.
للتعامل مع ‘CustomMiddleware’ في .NET، قم بتثبيت الحزم الضرورية (تفعيل الذكاء الاصطناعي، لا توجد ضمانات مقدمة هنا ولكنها تساعد كمؤشر في الاتجاه الصحيح…) –
dotnet add package Microsoft.AspNetCore.Authentication dotnet add package Microsoft.AspNetCore.Authentication.Cookies
الباقي هنا يتم نسخه ولصقه باستخدام C3… –
// CustomMiddleware.cs using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; using System.Threading.Tasks; public class CustomMiddleware { private readonly RequestDelegate _next; public CustomMiddleware(RequestDelegate next) { _next = next; } public async Task Invoke(HttpContext context) { // Decode or encode your cookies here // For example, decoding: // var decodedCookie = context.Request.Cookies["YourCookieName"]; // var decodedValue = DecodeYourCookie(decodedCookie); // Encoding example: // var encodedValue = EncodeYourCookie(originalValue); // context.Response.Cookies.Append("YourCookieName", encodedValue); // Call the next delegate/middleware in the pipeline await _next(context); } }
قم بتسجيل البرنامج الوسيط في “Startup.cs” الخاص بك –
// Startup.cs using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; public class Startup { // Other configurations... public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // Other middleware configurations... app.UseMiddleware<CustomMiddleware>(); // Other middleware configurations... } }
أجيان، الأجزاء المتعلقة بالرمز تم إنشاؤها بواسطة الذكاء الاصطناعي، وقد تكون غير متزامنة تمامًا مع ما تريد تحقيقه ولكنها تساعد كمؤشر…
الحل 3
أقترح قراءة مقالات MSDN هذه:
استكشاف الأخطاء وإصلاحها – جدار حماية تطبيق ويب Azure | مايكروسوفت تعلم[^]
افحص سجلات WAF باستخدام Azure Log Analytics – بوابة تطبيق Azure | مايكروسوفت تعلم[^]
إعدادات النهج لجدار حماية تطبيق الويب في Azure Front Door | مايكروسوفت تعلم[^]
قوائم استبعاد جدار حماية تطبيق الويب في بوابة تطبيق Azure – بوابة Azure | مايكروسوفت تعلم[^]
اتمني ان يكون مفيدا…
[ad_2]
コメント