نکاتی در مورد کار با URL در پی.اچ.پی
در برخی پروژههاتان شاید نیاز داشته باشید که به آدرسی که در نوار آدرس دیده میشود دسترسی داشته باشید و طبق آن تصمیمگیری کنید.
نمونه بارز این نوع استفاده، در تبدیل آدرسهای شامل علامت سؤال (؟) به آدرسهایی با کلمات کلیدی (یا در اصلاح آدرسهای Friendly) است.
مثلاً این آدرس را:
http://hamid.aftab.cc/?p=2
به این آدرس تبدیل میکنیم:
http://hamid.aftab.cc/about
در حقیقت وقتی کاربر سایت را با این آدرس:
http://hamid.aftab.cc/about
فراخوانی کرد، انتهای آدرس را اسکن میکنیم و اگر about دیدیم، همان چیزی را نشانش میدهیم که در حالت p=2 باید نشان میدادیم.
اما چگونه آدرس را اسکن کنیم و با آن کار کنیم؟
مثلا $_SERVER['SERVER_NAME']
اگر درست تنظیم شده باشد، بهتر از$_SERVER['HTTP_HOST']
است چون اولی پاک و مطمئن است اما دومی هم ممکن است غلط باشد و هم آلوده به کدی برای injection و ... که برای توضیح بیشتر میتوانید این مطلب یا این پاسخ را مطالعه کنید.
نکته 3: همچنین موارد جالب دیگری در آرایه $_SERVER
وجود دارد از جمله آدرس صفحه ارجاع (صفحه قبلی که کاربر از آن صفحه، به صفحه فعلی آمده است) که به صورت $_SERVER['HTTP_REFERER']
در دسترس است و کاربردهای فراوانی دارد. یکی از کاربردهای آن پیشگیری از حملات CSRF است و کاربرد دیگر آن، ارسال کاربر به صفحه پیشین، پس از ثبت اطلاعات فرم ارسالی است.
نکته 4: همانطور که در بحث امنیت به دانشجویان عزیز میگویم، نباید به عناصر موجود در آرایه $_SERVER
اعتماد کنید. مثلا تمام عناصری که به صورت $_SERVER['HTTP_*****']
هستند، همگی باید آلوده فرض شوند چون توسط سرآیند requestt میآیند و در هنگام کار با دیتابیس یا چاپ آنها باید ابتدا اقدامات لازم را برای حفظ امنیت انجام داد.