Cookie ها ابزار حیاتی وب هستن ولی اگه غلط تنظیم بشن، امنیت رو خراب میکنن. تو این مقاله همه چیز درباره Cookie امن رو یاد میگیرید.

Cookie چیه؟

یه فایل کوچک روی مرورگر کاربر که سرور اطلاعات رو نگه میداره. مثل Session ID، تنظیمات کاربر.

حمله‌های رایج

XSS Cookie Theft: کد مخرب Cookie رو میدزده
CSRF: کاربر ناخواسته اقدام میکنه
Session Hijacking: هکر Session رو سرقت میکنه
MITM: هکر بین کاربر و سرور Cookie رو میخونه

Cookie Attributes امن

Secure

Cookie فقط با HTTPS ارسال میشه.
Set-Cookie: sessionid=abc; Secure

HttpOnly

JavaScript نمیتونه Cookie رو بخونه. جلوی XSS رو میگیره.
Set-Cookie: sessionid=abc; HttpOnly

SameSite

Cookie فقط از دامنه خودی ارسال میشه.
Strict: امن‌ترین
Lax: تعادل
None: قدیمی، نیاز به Secure

Set-Cookie: sessionid=abc; SameSite=Strict

Expires/Max-Age

Cookie چند وقت زنده باشه:
Set-Cookie: sessionid=abc; Max-Age=3600

Domain

کدوم دامنه‌ها Cookie رو میبینن:
Set-Cookie: sessionid=abc; Domain=example.com

Path

فقط این مسیر Cookie رو داره:
Set-Cookie: sessionid=abc; Path=/admin

مثال امن

Set-Cookie: sessionid=abc; Secure; HttpOnly; SameSite=Strict; Max-Age=3600; Path=/

PHP امن

session_set_cookie_params([
  'lifetime' => 3600,
  'path' => '/',
  'secure' => true,
  'httponly' => true,
  'samesite' => 'Strict'
]);

Laravel

config/session.php:
'secure' => true,
'http_only' => true,
'same_site' => 'strict'

Session Rotation

بعد از Login، Session ID رو عوض کنید تا Session Fixation نشه.

Prefix Cookie

__Secure-: باید Secure باشه
__Host-: باید Secure، بدون Domain، Path=/

Set-Cookie: __Host-session=abc; Secure; Path=/; HttpOnly

Cookie Consent

GDPR: باید از کاربر اجازه بگیرید. پلاگین‌های Cookie Consent.

Storage جایگزین

Local Storage: JavaScript دسترسی داره. برای اطلاعات غیرحساس.
Session Storage: با بستن تب پاک میشه.
IndexedDB: برای داده بزرگ.

Cookie Bomb

حمله‌ای که با تعداد زیاد Cookie، درخواست رو بزرگ میکنه. Rate Limit ضروریه.

Encryption

محتوای Cookie رو رمزنگاری کنید. Laravel و Django خودکار انجام میدن.

Cookie Audit

مدام Cookie های سایت رو بررسی کنید. Chrome DevTools → Application → Cookies.

Third-party Cookies

Chrome در حال حذفشونه. تجدید نظر در استراتژی Marketing.

Cross-domain Cookie

اگه چند ساب‌دامین دارید و میخواید Cookie رو share کنید:
Domain=.example.com

سباهاست

سرورهای سباهاست با تنظیمات امن Cookie از قبل کانفیگ شدن.

جمع‌بندی

Cookie امن یه پایه ضروری امنیت وب هست. با تنظیمات درست Secure، HttpOnly، SameSite، از حملات جلوگیری کنید.