ویژگی تصویر

Cookie ها در PHP

  /  PHP   /  کوکی ها در PHP
بنر تبلیغاتی الف
آموزش PHP

در این آموزش به بررسی کوکی ها در PHP می پردازیم، کوکی‌ها یکی از ابزارهای اصلی برای ذخیره‌سازی اطلاعات در سمت کاربر هستند که به وب‌سایت‌ها امکان می‌دهند تا اطلاعات خاصی را در مرورگر کاربر ذخیره کرده و در دفعات بعدی بازدید بازیابی کنند. این قابلیت برای اهداف مختلفی مانند مدیریت نشست‌ها، پیگیری فعالیت کاربران و ذخیره تنظیمات سفارشی استفاده می‌شود. در PHP، کار با کوکی‌ها بسیار ساده و انعطاف‌پذیر است و ابزارهای پیشرفته‌ای برای ایجاد، خواندن و حذف آن‌ها در اختیار توسعه‌دهندگان قرار می‌دهد.

این مقاله به صورت جامع و دقیق به مفهوم کوکی‌ها در PHP، نحوه ایجاد آن‌ها، خواندن داده‌های ذخیره‌شده، محدودیت‌ها و نکات امنیتی مرتبط می‌پردازد. هدف این مقاله این است که شما با اصول اساسی کوکی‌ها آشنا شوید و بتوانید آن‌ها را در پروژه‌های خود به‌درستی مدیریت کنید.

کوکی چیست و چگونه کار می‌کند؟

کوکی یک فایل متنی کوچک است که وب‌سرور از طریق مرورگر روی دستگاه کاربر ذخیره می‌کند. این فایل شامل اطلاعاتی مانند شناسه کاربری، ترجیحات کاربر یا اطلاعات نشست (Session) است. مرورگر در درخواست‌های بعدی این اطلاعات را به سرور بازمی‌گرداند تا تجربه کاربری بهتری ارائه شود.

ویژگی‌های کلیدی کوکی‌ها:

  1. ذخیره‌سازی در سمت کاربر: برخلاف نشست‌ها (Sessions) که در سمت سرور ذخیره می‌شوند، کوکی‌ها در دستگاه کاربر قرار دارند.
  2. عمر مشخص: هر کوکی می‌تواند تاریخ انقضای مشخصی داشته باشد. در صورتی که تاریخ انقضا تعیین نشود، کوکی به صورت پیش‌فرض تا پایان جلسه مرورگر معتبر است.
  3. دسترسی محدود: کوکی‌ها را می‌توان به دامنه یا مسیر خاصی محدود کرد تا امنیت بیشتری فراهم شود.

مثالی از کوکی در دنیای واقعی

فرض کنید کاربری به یک فروشگاه آنلاین مراجعه می‌کند و محصولاتی را به سبد خرید خود اضافه می‌کند. با استفاده از کوکی‌ها، فروشگاه می‌تواند اطلاعات مربوط به سبد خرید کاربر را حتی پس از بسته شدن مرورگر ذخیره کند.

ایجاد کوکی در PHP

در PHP، برای ایجاد یک کوکی از تابع setcookie استفاده می‌شود. این تابع اطلاعات مختلفی مانند نام، مقدار، مدت زمان اعتبار و دامنه کوکی را تعیین می‌کند.

ساختار دستور setcookie

bool setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
مثال عملی: ایجاد یک کوکی ساده
تماشا در حالت تمام صفحه

توضیح مثال

  • نام: user
  • مقدار: John Doe
  • مدت اعتبار: ۳۰ روز (86400 ثانیه * 30)
  • مسیر: / به معنای دسترسی در کل دامنه

خواندن کوکی‌ها در PHP

برای دسترسی به مقدار کوکی‌ها از آرایه سراسری $_COOKIE استفاده می‌شود. این آرایه تمامی کوکی‌های موجود را به صورت کلید-مقدار ارائه می‌دهد.

مثال عملی: خواندن مقدار کوکی

تماشا در حالت تمام صفحه

توضیح مثال

  • اگر کوکی‌ای با نام user تنظیم شده باشد، مقدار آن نمایش داده می‌شود.
  • اگر کوکی موجود نباشد، پیام “کوکی یافت نشد!” نشان داده خواهد شد.

حذف کوکی‌ها در PHP

برای حذف کوکی‌ها، کافی است تاریخ انقضای آن‌ها را به زمانی در گذشته تنظیم کنید.

مثال عملی: حذف یک کوکی

تماشا در حالت تمام صفحه

توضیح مثال

  • مقدار کوکی به یک رشته خالی تنظیم شده است.
  • تاریخ انقضا یک ساعت قبل از زمان فعلی تعیین شده است.

نکات امنیتی مرتبط با کوکی‌ها

استفاده از کوکی‌ها می‌تواند خطراتی مانند سرقت اطلاعات یا حملات تزریق (Injection) ایجاد کند. برای کاهش این خطرات، اقدامات زیر توصیه می‌شود:

  1. فعال‌سازی HttpOnly: دسترسی به کوکی‌ها از طریق جاوااسکریپت را محدود می‌کند.
  2. استفاده از Secure: اطمینان از ارسال کوکی‌ها فقط از طریق اتصال‌های امن HTTPS.
  3. رمزنگاری مقادیر حساس: مقادیر ذخیره‌شده در کوکی‌ها باید رمزنگاری شوند تا در صورت سرقت اطلاعات، امنیت حفظ شود.
  4. محدود کردن دامنه و مسیر: دسترسی به کوکی‌ها را به بخش خاصی از وب‌سایت محدود کنید.

مثال امنیتی: ایجاد کوکی امن

تماشا در حالت تمام صفحه

توضیح مثال

  • true برای Secure تضمین می‌کند که کوکی فقط از طریق HTTPS ارسال شود.
  • true برای HttpOnly دسترسی به کوکی از طریق جاوااسکریپت را غیرممکن می‌کند.

کوکی‌ها ابزار قدرتمندی برای مدیریت اطلاعات در سمت کاربر هستند که می‌توانند تجربه کاربری را بهبود بخشند و فرآیندهای وب را کارآمدتر کنند. در این مقاله با مفاهیم پایه‌ای، نحوه ایجاد، خواندن، حذف و نکات امنیتی مرتبط با کوکی‌ها در PHP آشنا شدید. استفاده درست و امن از کوکی‌ها می‌تواند نقش مهمی در موفقیت پروژه‌های وب ایفا کند.

منابع

  1. PHP Manual – Cookies
  2. MDN Web Docs – HTTP Cookies

آیا این مطلب برای شما مفید بود ؟

خیر
بله
بنر تبلیغاتی ج