موضوعات پیشرفته
·
۹ دقیقه مطالعه
کوکی و نشست (Session)
HTTP بیحافظه است؛ Cookie و Session این مشکل را حل میکنند (مثلاً «کاربر لاگین است»).
Cookie — ذخیره در مرورگر
setcookie('theme', 'dark', time() + 3600, '/', '', true, true);
$theme = $_COOKIE['theme'] ?? 'light';
دو پارامتر آخر مهماند: secure (فقط HTTPS) و httponly (دور از دسترس JS — ضد XSS).
Session — ذخیره روی سرور
امنتر برای دادههای حساس:
<?php
session_start(); // اول هر صفحه
$_SESSION['user_id'] = 42;
// در صفحهٔ دیگر
session_start();
$id = $_SESSION['user_id'] ?? null;
session_destroy(); // خروج
⚠️ امنیت session
- بعد از ورود موفق،
session_regenerate_id(true)بزن (ضد Session Fixation). - هرگز رمز یا دادههای حساس را در Cookie نگذار؛ فقط شناسه در session.
Cookie یا Session؟
| Cookie | Session | |
|---|---|---|
| محل | مرورگر | سرور |
| امنیت | کمتر | بیشتر |
| کاربرد | تنظیمات ساده | ورود، داده حساس |
فریمورکهایی مثل Laravel همهٔ اینها را امن و خودکار مدیریت میکنند.