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، از حملات جلوگیری کنید.