پیکربندی TrustedProxies در Laravel
با توجه به این نکته که تمامی درخواستها توسط reverse proxy لیارا به برنامهی شما هدایت میشود؛ باید در زمان استفاده از فریمورکهای مختلف برای مشاهدهی IP واقعی کاربران و بسیاری از قابلیتهای دیگر تعیین کنید که برنامهی شما در پشت یک reverse proxy راهاندازی شده است.
عبارت Trusted Proxies یا پروکسیهای مورد اعتماد، به پروکسیهایی گفته میشود که سرور به آنها اعتماد دارد تا آدرسهای IP واقعی کاربران را ارسال کنند. در بسیاری از مواقع، سرورهایی که پشت یک پروکسی معکوس (reverse proxy) قرار دارند، فقط آدرس IP پروکسی را میبینند و نه آدرس IP واقعی کاربران. برای رفع این مشکل و برای دلایلی مانند رهگیری، ردیابی یا اعمال سیاستهای امنیتی، TrustedProxyها، IP واقعی کاربران را از طریق هدرهای HTTP خاصی مثل X-Forwarded-For یا X-Real-IP به سرورهای پشتی ارسال میکنند.
برای این که در برنامهیتان بتوانید به آیپی واقعی کاربر دسترسی داشته باشید، کافیست تا در دایرکتوری config یک فایل به نام trustedproxy.php ایجاد کنید و یا اگر که این فایل از قبل وجود دارد، فقط کافیست تا قطعه کد زیر را در آن، قرار دهید:
تمامی کارها انجام شده است و شما میتوانید برای بررسی این فایل، با اجرای دستور زیر، یک کنترلر برای نمایش آیپی ایجاد کنید:
سپس، کافیست تا قطعه کد زیر را در app/Http/Controllers/IPController.php قرار دهید:
در نهایت، بایستی که قطعه کد زیر را به فایل routes/web.php اضافه کنید:
حال، میتوانید برنامه خود را در لیارا مستقر کرده، و پس از استقرار موفق برنامه، وارد صفحه ip/ آن، شوید تا آیپی واقعیتان به شما نمایش داده شود.