پیشگیری از دسترسی آی پی های غیر مجاز به سایت توسط HTTP Module

در قسمت قبل دیدیم که یکی از کاربرد های HTTP Moduleها بررسی های امنیتی است. فرض کنید سایتی دارید که میخواهید تنها آی پی های تعریف شده بتوانند به آن دسترسی پیدا کنند و آدرس های تعریف نشده امکان دسترسی به آن را نداشته باشند حتی اگر نام کاربری نیز داشته باشند فقط در شرایطی که در محل خاصی بودند بتوانند از امکانات سایت استفاده کنند.
در زیر ماژول مخصوص این کار را مشاهده میکنید.
public class AllowedIP : IHttpModule
{


    public void Init(HttpApplication context)
    {
        context.BeginRequest += new EventHandler(context_BeginRequest);
    }

    void context_BeginRequest(object sender, EventArgs e)
    {
        //به دست آوردن لیست آی پی های مجاز
        List<string> allowedIpList = GetIpList();
        HttpApplication application = (HttpApplication)sender;
        HttpContext context = application.Context;
        string userIp = context.Request.UserHostAddress;
        //بررسی وجود آی پی درخواست درهنده در لیست آی پی های مجاز
        if (!allowedIpList.Contains(userIp))
        {
            throw new HttpException(401, "AccessDenied");
        }

    }
    private List<string> GetIpList()
    {
        // در اینجا میتوانید لیست آی پی های مجاز را از هر منبعی به دست آورید.
        List<string> lst = new List<string>();
        lst.Add("192.168.0.1");
        lst.Add("192.168.0.2");
        lst.Add("192.168.0.3");
        lst.Add("192.168.0.4");
        lst.Add("192.168.0.5");
        return lst;
    }

    public void Dispose()
    {
        
    }
}
 
در این ماژول لیست آیپی های مجاز از منبع دلخواه به دست میآید و سپس با آیپی کاربر تطبیق داده میشود. در صورت غیر مجاز بود یک خطای عدم دسترسی صادر میشود.
میتوانید به کمک یک ماژول که خطاهای برنامه را لاگ میکند، این خطا را به همراه آی پی کاربری که به سایت شما دسترسی داشه لاگ کنید.

3 نظرات:

Mohammad گفت...

ممنون.
ديدن اين پست هم خالي از لطف نيست
آفلاين كردن يك وب سايت با HttpModules

يه سوال چرا از disqus برا قسمت كامنت استفاده نميكنيد؟

علیرضا ارومند گفت...

کی میگه استفاده نمیکن؟!
استفاده میکنم که! :D
شوخی کردم. از وجود برادر disqus بی خبر بودم. ممنون

Hhghghg گفت...

567utrhf