تشفير وفك تشفير ملفات تعريف الارتباط لتجاوز قواعد WAF

[ad_1]

أهلاً،

لدي تطبيق ويب .net 6، ويتمتع بمصادقة إعلان Azure. التطبيق محاط ببوابة تطبيق azure. يتم حظر قواعد WAF الخاصة بالبوابة وتقوم بإرجاع خطأ 403 من البوابة.

السبب الجذري: تعمل مصادقة Microsoft Identity Web على إنشاء ملفات تعريف الارتباط ذات أحرف خاصة مثل الواصلة المزدوجة (–)، ويعتبرها regex WAF كتعليق SQL وتحظر هذا الطلب.

ما حاولت:

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

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

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

الحل 1

الحل 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

[ad_2]

コメント

タイトルとURLをコピーしました