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.
PDF Gratis: Cheatsheet Claude Code dalam 5 Menit
Cukup masukkan emailmu dan kami akan langsung mengirim cheatsheet PDF A4 satu halaman.
Kami menjaga data pribadimu dengan aman dan tidak pernah mengirim spam.
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
7 template CLAUDE.md untuk Claude Code yang bisa langsung dipakai di proyek nyata
Tujuh template CLAUDE.md praktis untuk app solo, situs konten, API, repo tim, dan codebase legacy, plus kegagalan yang perlu dihindari.
Panduan Approval dan Sandbox Claude Code | Pengaturan aman untuk kerja harian
Cara membagi aksi Claude Code ke allow, ask, deny, dan sandbox dengan settings praktis, hooks, dan contoh workflow nyata.
Panduan Lengkap Memulai Claude Code 2026 | 7 Langkah dari Nol hingga Siap Pakai di Dunia Kerja
Panduan pemula lengkap untuk pengguna baru Claude Code. Dari instalasi hingga mengintegrasikannya ke workflow pengembangan nyata — mencakup semua jebakan yang Masa hadapi di awal.