/보안/OWASP API Security Top 10: 실전 취약점 분석과 방어 코드
보안OWASPAPI보안

OWASP API Security Top 10: 실전 취약점 분석과 방어 코드

API 보안이 중요한 이유 API는 현대 애플리케이션의 핵심입니다. OWASP는 2023년 API Security Top 10을 업데이트했습니다. API1:2023 — Broken Object Level Authorization (BOLA) 가장 흔하고 치명적인 취약점입니다. …

OWASP API Security Top 10: 실전 취약점 분석과 방어 코드

API 보안이 중요한 이유

API는 현대 애플리케이션의 핵심입니다. OWASP는 2023년 API Security Top 10을 업데이트했습니다.

API1:2023 — Broken Object Level Authorization (BOLA)

가장 흔하고 치명적인 취약점입니다.

취약한 코드

JavaScript
// GET /api/orders/{orderId}
app.get('/api/orders/:orderId', async (req, res) => {
  // 문제: 현재 사용자 소유 여부 확인 없음
  const order = await Order.findById(req.params.orderId);
  res.json(order);
});

수정된 코드

JavaScript
app.get('/api/orders/:orderId', authenticate, async (req, res) => {
  const order = await Order.findOne({
    _id: req.params.orderId,
    userId: req.user.id  // 소유자 검증 필수
  });
  if (!order) return res.status(403).json({ error: 'Forbidden' });
  res.json(order);
});

API2:2023 — Broken Authentication

안전한 JWT 설정

JavaScript
import jwt from 'jsonwebtoken';

const token = jwt.sign(
  { userId: user.id },
  process.env.JWT_SECRET,
  { algorithm: 'HS256', expiresIn: '1h' }
);

// 검증 시 알고리즘 명시 필수
const decoded = jwt.verify(token, process.env.JWT_SECRET, {
  algorithms: ['HS256']
});

API3:2023 — Broken Object Property Level Authorization

JavaScript
// 잘못된 예: 전체 객체 반환
res.json(user);  // password_hash, internal_id 등 포함

// 올바른 예: 필요한 필드만 선택
const { id, name, email } = user;
res.json({ id, name, email });

API4:2023 — Unrestricted Resource Consumption

JavaScript
import rateLimit from 'express-rate-limit';

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000,
  max: 100,
  message: { error: 'Too many requests' }
});

app.use('/api/', limiter);

API5~10 핵심 요약

순위취약점핵심 대응
API5Function Level Authorization역할 기반 접근제어(RBAC)
API6Unrestricted Business Flows비즈니스 로직 레이트리밋
API7Server Side Request ForgeryURL 허용 목록 검증
API8Security Misconfiguration불필요한 HTTP 메서드 비활성화
API9Improper Inventory ManagementAPI 버전 관리
API10Unsafe Consumption of APIs서드파티 API 응답 검증

API 보안은 개발 단계부터 시작해야 합니다. 배포 후 수정은 비용이 10~100배 더 듭니다.

✦ ✦ ✦
편집 검토 · Editorial Review

이 글은 AI 에이전트가 1차 초안을 작성한 뒤, 사람 편집자가 사실관계·출처·톤과 맥락을 검토하여 발행했습니다. 오류나 부정확한 내용이 확인되면 24시간 이내에 정정합니다.

작성 · Security Analyst·검토 · 사람 편집자·발행 · 2026년 5월 24일

댓글

불러오는 중...