Web 실전 가이드: Claude Code 활용 가이드
web practical guide: Claude Code 활용. 실용적인 팁과 코드 예시를 포함합니다.
Web보안헤더をClaude Code로올바르게설정する
Web애플리케이션の보안には적절한HTTP헤더설정が필수적입니다。하지만、각헤더の役割や正しい値の설정は복잡합니다。Claude Code를 활용하면 프로젝트に合った보안헤더を正確に설정할 수 있습니다。
Content Security Policy(CSP)
적절한CSP설정
> Next.js앱用のCSP헤더を설정して。
> 要件:
> - インラインスクリプトはnonce方式
> - Google Analyticsを허가
> - 外部폰트を허가
> - レポートURIを설정
// middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
import crypto from 'crypto';
export function middleware(request: NextRequest) {
const nonce = crypto.randomBytes(16).toString('base64');
const response = NextResponse.next();
const csp = [
`default-src 'self'`,
`script-src 'self' 'nonce-${nonce}' https://www.googletagmanager.com`,
`style-src 'self' 'unsafe-inline' https://fonts.googleapis.com`,
`font-src 'self' https://fonts.gstatic.com`,
`img-src 'self' data: https:`,
`connect-src 'self' https://www.google-analytics.com`,
`frame-ancestors 'none'`,
`base-uri 'self'`,
`form-action 'self'`,
`report-uri /api/csp-report`,
].join('; ');
response.headers.set('Content-Security-Policy', csp);
response.headers.set('x-nonce', nonce);
return response;
}
主要보안헤더목록
> 모든보안헤더を一括설정する미들웨어를 생성해줘。
// Express.jsでの설정例
import helmet from 'helmet';
app.use(helmet({
contentSecurityPolicy: { /* 上記CSP設定 */ },
strictTransportSecurity: {
maxAge: 63072000, // 2年
includeSubDomains: true,
preload: true,
},
referrerPolicy: {
policy: 'strict-origin-when-cross-origin',
},
frameguard: { action: 'deny' },
}));
// Helmetがカバーしない추가헤더
app.use((req, res, next) => {
res.setHeader('Permissions-Policy',
'camera=(), microphone=(), geolocation=(), payment=(self)');
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
res.setHeader('Cross-Origin-Resource-Policy', 'same-origin');
res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
next();
});
각헤더の解説
| 헤더 | 目的 | 推奨値 |
|---|---|---|
| Content-Security-Policy | XSS・インジェクション防止 | 프로젝트固有 |
| Strict-Transport-Security | HTTPS強制 | max-age=63072000; includeSubDomains; preload |
| X-Content-Type-Options | MIMEスニッフィング防止 | nosniff |
| X-Frame-Options | 클릭ジャッキング防止 | DENY |
| Referrer-Policy | リファラー情報制御 | strict-origin-when-cross-origin |
| Permissions-Policy | 브라우저機能制限 | 必要な機能のみ허가 |
CSPレポートの수신
CSP違反レポートを수신して分析する엔드포인트もClaude Code로구축할 수 있습니다。
// pages/api/csp-report.ts
export default function handler(req, res) {
if (req.method === 'POST') {
const report = req.body['csp-report'];
console.warn('CSP違反:', {
blockedUri: report['blocked-uri'],
violatedDirective: report['violated-directive'],
documentUri: report['document-uri'],
});
}
res.status(204).end();
}
보안監査
「SecurityHeaders.com でA+評価を取りたい」とClaude Code에伝えれば、不足している헤더を特定して추가提案してくれます。
정리
Claude Code를 활용하면 Web보안헤더の설정を正確かつ包括的に行えます。보안監査가이드やCORS설정가이드도 함께 참고하세요.
보안헤더의 상세 정보는MDN Web Docs - HTTP헤더およびSecurityHeaders.com를 참고하세요.
Claude Code 워크플로우를 한 단계 업그레이드하세요
지금 바로 Claude Code에 복사해 쓸 수 있는 검증된 프롬프트 템플릿 50선.
이 글을 작성한 사람
Masa
Claude Code를 적극 활용하는 엔지니어. 10개 언어, 2,000페이지 이상의 테크 미디어 claudecode-lab.com을 운영 중.
관련 글
Claude Code로 리팩토링을 자동화하는 방법
Claude Code를 활용해 코드 리팩토링을 효율적으로 자동화하는 방법을 알아봅니다. 실전 프롬프트와 구체적인 리팩토링 패턴을 소개합니다.
Claude Code로 사이드 프로젝트 개발 속도를 극대화하는 방법 [예제 포함]
Claude Code를 활용해 개인 프로젝트 개발 속도를 획기적으로 높이는 방법을 알아봅니다. 실전 예제와 아이디어부터 배포까지의 워크플로를 포함합니다.
Complete CORS Configuration Guide: Claude Code 활용 가이드
complete cors configuration guide: Claude Code 활용. 실용적인 팁과 코드 예시를 포함합니다.