سید حسین هاشمی
5 سال پیش توسط سید حسین هاشمی مطرح شد
7 پاسخ

محدود کردن دسترسی از کشور خاص

سلام دوستان
من یه فرم گزارش دارم میخام کاربری که پراکسی زده ، یا از ایران نیست ، نتونه درخواستشو ارسال کنه به سرور
مثلا از طریق وی پی اس های داخل ایران هم نشه
امکان چنین مسئله ای هست ؟از لحاظ فنی


ثبت پرسش جدید
سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
1

آره شدنش که میشه، یه سری سرویس ها هستند به شما یه api میدن و راحت میتونی موقعیت کاربر رو داشته باشه و بعد با اون محدود کنی یه سرچ بزنی برات میاد


سید حسین هاشمی
تخصص : کار آموز برنامه نویسی وب
@karenp8 5 سال پیش مطرح شد
0

@hossein.r.1442
میشه متوجه شد ک vps هستن یا نه درسته ؟


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
0

من تا حالا بررسی نکردم یه سرچ بزنید انواع شو براتون میاره بعد داکیومنتش رو بخونید


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 5 سال پیش مطرح شد
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش مطرح شد
1

همانطور که دوستان در بالا گفتن شما با محدود کردن ip میتونی کارتون رو انجام بدی ، با سرویس سایت ipapi.com شما میتونی با GuzzleHttp ای پی کاربر رو به api سایت بفرستی که نتیجه بازگشتی که شما یه بخش Security داره که مشخص میکنه امن هست (لینک آموزشی که دوستمون @coaradsupp گذاشتن ) یعنی از شبکه TOR استفاده میکنه یا خیر، همه ی این کارها رو با مشخص کردن میدلور در لاراول میتونی انجام بدی.

public function handle($request, Closure $next)
{
    $ip = $request->ip();

    $key = config('services.ip.key');
    $url = "http://api.ipapi.com/api/{$ip}?access_key={$key}&security=1";

    // make request
    $client = new Client;
    $response = $client->request('GET', $url);
    $data = json_decode((string) $response->getBody(), true);

    if (!array_key_exists('security', $data)) {
        return false;
    }

    return $data['security']['threat_level'] === 'high' ? abort(403) : $next($request);
}

https://www.roxo.ir/protecting-laravel-sites-with-ip/


محمدرضا قمی اویلی
تخصص : لاراول
@ghomi 5 سال پیش آپدیت شد
0

همونطور که دوست عزیز آقای موسوی فرمودند شما میتونید از سرویس که گفتند استفاده کنید ولی چون این سرویس رایگان نیست و در پاسخ مقدار Security وجود نداره شما چک کنید میتونید به شکل زیر استفاده کنید.
حالا خطا رو به هر شکلی که دوست داشتین برگردونید.

  public function handle($request, Closure $next)
    {
        $ip = $request->ip();
        $key = config('services.ip.key');
        $url = "http://api.ipapi.com/api/{$ip}?access_key={$key}&security=1";

        $client = new Client();
        $response = $client->request('GET',$url);
        $data = json_decode((string) $response->getBody() , true);

        if ($data['country_name'] !== 'Iran') {
            return response("country : ".$data['country_name']." not support" , 403);
        }

        return $next($request);
    }

سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش آپدیت شد
0

اره میشه $data['country_name کشور رو بگیری‌چک کنی ببینی‌ از ایران این ip یا نه ولی اگر بشه متغییر Security رو بگیری که مشخص بشه از tor استفاده نکرده باشه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام