Mã hóa và giải mã cookie để vượt qua các quy tắc WAF

lập trình


CHÀO,

Tôi có ứng dụng web .net 6, có xác thực quảng cáo Azure. Ứng dụng được bao quanh bởi cổng ứng dụng Azure. Các quy tắc WAF của cổng đang bị chặn và nó đang trả về lỗi 403 từ cổng.

Nguyên nhân cốt lõi: Xác thực Microsoft Identity Web tạo cookie có ký tự đặc biệt như dấu gạch nối kép (–), biểu thức chính quy WAF coi chúng là nhận xét SQL và nó đang chặn yêu cầu đó.

Những gì tôi đã thử:

Tôi đã cố gắng viết phần mềm trung gian tùy chỉnh để mã hóa và giải mã cookie nhưng nó không hoạt động.

Tôi cũng không thể hiểu được quy trình vì khái niệm này không rõ ràng đối với tôi giống như tôi đang giải mã và mã hóa cookie trong mã máy chủ ở kho trung gian, nhưng khi người dùng gửi yêu cầu tới ứng dụng web, ban đầu nó sẽ đến đến cổng và ở đó nó sẽ bị chặn bởi cổng. Tôi không chắc loại giải pháp này có thể hoạt động như thế nào.

Vui lòng chia sẻ đề xuất của bạn nếu bạn gặp phải vấn đề này ngoài việc chặn các quy tắc trong cổng ứng dụng. Hoặc thực tế nó sẽ được giải quyết như thế nào

Giải pháp 1

Giải pháp 2

Đây hoàn toàn không phải là lĩnh vực chuyên môn của tôi hoặc thậm chí gần đó…, tuy nhiên tôi thấy câu hỏi này thú vị và bắt đầu tìm kiếm trên Google và, vâng, tôi biết, một số lời khuyên của AI.

Có vẻ như phần mềm trung gian tùy chỉnh của bạn để mã hóa và giải mã cookie đã được triển khai chính xác
Có vẻ như bạn cần đảm bảo rằng mọi tiêu đề được thêm vào trong quá trình mã hóa/giải mã đều được đưa vào các yêu cầu gửi đi.
Đảm bảo rằng Cổng ứng dụng Azure của bạn không quá hạn chế và cân nhắc điều chỉnh các quy tắc WAF nếu cần, tôi thấy nhận xét rằng bạn không có quyền kiểm soát điều này, chỉ cần kiểm tra và xác nhận trạng thái.

Để xử lý ‘CustomMiddleware’ trong .NET, hãy cài đặt các gói cần thiết (AI khởi động, không có đảm bảo nào được đưa ra ở đây nhưng sẽ trợ giúp như một con trỏ đi đúng hướng…) –

đánh
dotnet add package Microsoft.AspNetCore.Authentication
dotnet add package Microsoft.AspNetCore.Authentication.Cookies

Phần còn lại được sao chép và dán ở đây bằng C3… –

C#
// 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);
    }
}

Đăng ký phần mềm trung gian trong ‘Startup.cs’ của bạn –

C#
// 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...
    }
}

Agian, các phần liên quan đến mã do AI tạo ra, có thể hoàn toàn không đồng bộ với những gì bạn muốn đạt được nhưng hãy trợ giúp như một con trỏ…

Giải pháp 3

コメント

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