Cara Mengimplementasikan Manajemen Cookie dan Session dengan Claude Code
Pelajari cara mengimplementasikan manajemen cookie dan session menggunakan Claude Code. Dilengkapi contoh kode praktis dan panduan langkah demi langkah.
Pentingnya Manajemen Cookie
Cookie adalah fondasi autentikasi pengguna dan manajemen session, namun kesalahan konfigurasi keamanan bisa menyebabkan kerentanan serius. Dengan Claude Code, kamu bisa mengimplementasikan mekanisme manajemen Cookie yang aman dengan benar.
Utilitas Operasi Cookie yang Aman
> Buatkan utilitas operasi Cookie yang menyertakan pengaturan keamanan.
> Wajibkan pengaturan HttpOnly, Secure, dan SameSite.
interface CookieOptions {
maxAge?: number;
path?: string;
domain?: string;
secure?: boolean;
httpOnly?: boolean;
sameSite?: 'strict' | 'lax' | 'none';
}
const DEFAULT_OPTIONS: CookieOptions = {
path: '/',
secure: true,
httpOnly: true,
sameSite: 'lax',
maxAge: 86400, // 1 hari
};
class CookieManager {
static set(name: string, value: string, options: CookieOptions = {}) {
const opts = { ...DEFAULT_OPTIONS, ...options };
const parts = [`${encodeURIComponent(name)}=${encodeURIComponent(value)}`];
if (opts.maxAge) parts.push(`Max-Age=${opts.maxAge}`);
if (opts.path) parts.push(`Path=${opts.path}`);
if (opts.domain) parts.push(`Domain=${opts.domain}`);
if (opts.secure) parts.push('Secure');
if (opts.httpOnly) parts.push('HttpOnly');
if (opts.sameSite) parts.push(`SameSite=${opts.sameSite}`);
return parts.join('; ');
}
static parse(cookieHeader: string): Record<string, string> {
return cookieHeader.split(';').reduce((acc, pair) => {
const [key, ...vals] = pair.trim().split('=');
if (key) acc[decodeURIComponent(key)] = decodeURIComponent(vals.join('='));
return acc;
}, {} as Record<string, string>);
}
static delete(name: string, path = '/') {
return this.set(name, '', { maxAge: 0, path });
}
}
Manajemen Session di Express
> Implementasikan manajemen session yang aman di Express.
> Gunakan Redis sebagai session store dan tambahkan perlindungan CSRF.
import session from 'express-session';
import RedisStore from 'connect-redis';
import { createClient } from 'redis';
import csrf from 'csurf';
const redisClient = createClient({ url: process.env.REDIS_URL });
redisClient.connect();
const sessionConfig: session.SessionOptions = {
store: new RedisStore({ client: redisClient }),
secret: process.env.SESSION_SECRET!,
name: '__session',
resave: false,
saveUninitialized: false,
cookie: {
secure: process.env.NODE_ENV === 'production',
httpOnly: true,
sameSite: 'lax',
maxAge: 24 * 60 * 60 * 1000, // 24 jam
},
};
app.use(session(sessionConfig));
app.use(csrf({ cookie: false })); // CSRF berbasis session
Operasi Cookie yang Aman di Sisi Client
Manajemen Cookie yang dioperasikan di sisi browser (yang bukan HttpOnly) juga bisa di-generate dengan Claude Code.
// Utilitas Cookie sisi client (untuk info non-sensitif seperti tema dan pengaturan bahasa)
export const clientCookie = {
get(name: string): string | null {
const match = document.cookie.match(new RegExp(`(?:^|; )${name}=([^;]*)`));
return match ? decodeURIComponent(match[1]) : null;
},
set(name: string, value: string, days = 365) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)};expires=${expires};path=/;SameSite=Lax`;
},
remove(name: string) {
document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`;
},
};
// Contoh penggunaan: menyimpan pengaturan tema
clientCookie.set('theme', 'dark');
const theme = clientCookie.get('theme'); // 'dark'
Penguatan Keamanan Session
// Pencegahan serangan session fixation
app.post('/login', async (req, res) => {
const user = await authenticate(req.body);
// Regenerasi session ID saat login berhasil
req.session.regenerate((err) => {
if (err) return res.status(500).json({ error: 'Session error' });
req.session.userId = user.id;
res.json({ success: true });
});
});
Summary
Dengan Claude Code, kamu bisa mengimplementasikan secara konsisten mulai dari pengaturan Cookie yang aman, manajemen session, hingga perlindungan CSRF. Untuk autentikasi secara umum, lihat Panduan Implementasi Autentikasi, dan untuk perbandingan dengan autentikasi JWT, lihat Artikel JWT Authentication. Security Audit juga bisa dijadikan referensi.
Untuk best practices manajemen session, lihat OWASP Session Management.
Tingkatkan alur kerja Claude Code kamu
50 template prompt yang sudah teruji, siap copy-paste ke Claude Code sekarang juga.
PDF Gratis: Cheatsheet Claude Code dalam 5 Menit
Perintah penting, pintasan, dan contoh prompt dalam satu halaman siap cetak.
Tentang Penulis
Masa
Engineer yang aktif menggunakan Claude Code. Mengelola claudecode-lab.com, media teknologi 10 bahasa dengan lebih dari 2.000 halaman.
Artikel Terkait
Membuat Perintah Slash Kustom di Claude Code — Alur Kerja Anda
Pelajari cara membuat perintah slash kustom di Claude Code. Mencakup penempatan file, argumen, dan otomatisasi tugas berulang dengan contoh kode praktis.
10 Tips untuk Melipatgandakan Produktivitas dengan Claude Code
Temukan 10 tips praktis untuk memaksimalkan Claude Code. Dari strategi prompt hingga shortcut workflow, teknik-teknik ini akan meningkatkan efisiensimu mulai hari ini.
Optimasi Canvas/WebGL dengan Claude Code
Pelajari tentang optimasi Canvas/WebGL menggunakan Claude Code. Tips praktis dan contoh kode disertakan.