PDA

View Full Version : سوال: بلاک کردن درخواست برای کاربران غیر از کشور ایران



parsdarab
شنبه 10 مهر 1395, 14:37 عصر
سلام دوستان

من میخاستم ip هایی که غیر از کشور ایران به سایت درخواست میدن رو بلاک کنم

برای این کار با یک وب سرویس آشنا شدم که ip رو بهش بدی نام کشور برمیگردونه


حالا برای بلاک کردن در mvc باید کجا کدنویسی کنم؟ و چه کدی رو بنویسم؟
این کد رو فقط یکجا می خواهم بنویسم.
اگه نمونه کدی دارید معرفی کنید

با تشکر

Moien Tajik
شنبه 10 مهر 1395, 15:29 عصر
سلام ,
چند روش برای اینکار وجود داره ; شما باید range اون ip هایی که برای ایران هستن رو داشته باشید .
این IP Range های ایران : http://services.ce3c.be/ciprg/?countrys=IRAN+%28ISLAMIC+REPUBLIC+OF%29

برای Block کردن باید همه ی IP ها ، جز ماله ایران رو Restrict کنید .
برای اینکار میتونید از IIS , Custom Filter , Web.Config و Geo To Location استفاده کنید فکر میکنم استفاده از Custom Filter Attribute از همه ی روش ها راحتتر باشه :

Custom Filter :
http://dejanstojanovic.net/aspnet/2014/august/restrict-access-to-an-mvc-action-or-controller-based-on-ip-address/

Geo To Location :
http://lukencode.com/2010/05/19/ip-to-geo-location-in-asp-net-mvc/

IIS :
https://www.iis.net/configreference/system.webserver/security/ipsecurity

Web.Config :
http://www.sasanyeganegi.com/2013/12/how-to-restrict-access-by-ip-in-aspnet.html

parsdarab
یک شنبه 11 مهر 1395, 15:19 عصر
سلام با گذاشتن کد زیر در Application_BeginRequest درست شد


protected void Application_BeginRequest()
{
string ipAddress = HttpContext.Current.Request.UserHostAddress;

if (!IsIpAddressAllowed(ipAddress.Trim()) && HttpContext.Current.Request.AppRelativeCurrentExec utionFilePath.ToString() != "~/BaseSystem/ManageErrors/err403")
{
Response.Redirect(String.Format(@"~/ManageErrors/{0}", "err403"));
}
}

توی قسمت Application_BeginRequest چطوری می تونم به دیتابیس دسترسی داشته باشم

با استفاده از unit of work

وقتی کد زیر رو میزام خطا میده



readonly IUnitOfWork _uow;
readonly IBaseServiceSetting _SettingService;

//public MvcApplication(IUnitOfWork uow, IBaseServiceSetting CountryService)
//{
// _SettingService = CountryService;
// _uow = uow;
//}

142844

asif1358
دوشنبه 12 مهر 1395, 09:43 صبح
شاید شما دلیل منطقی برای این کار داشته باشید.

ولی لطفا تا حد امکان این محدودیت ها را نگذارید.

من از کاربران سایت هستم که در کابل افغانستان هستم ولی اغلب کارهای اینترنتی ام در ایران انجام میشه!

parsdarab
دوشنبه 12 مهر 1395, 10:09 صبح
شاید شما دلیل منطقی برای این کار داشته باشید.

ولی لطفا تا حد امکان این محدودیت ها را نگذارید.

من از کاربران سایت هستم که در کابل افغانستان هستم ولی اغلب کارهای اینترنتی ام در ایران انجام میشه!

من بیشتر هدفم اینه ip هایی رو بلاک کنم توسط الماه لاگهایی خطرناکی ثبت شدند. مانند انواع حملاتی که بر روی سایت اتفاق میفته و بعضی موارد هم منجر به اختلال در سیستم میشه
حداقل با بلاک کردن این نوع ip ها پیشگیری صورت گرفته و دوما این به صورت داینامیک میخام پیاده سازی بشه پس مدتی از لیست سیاه میاد بیرون