Ch.8 웹 개발 상식

보안 기초 — XSS와 Injection, .env 관리

XSS와 SQL Injection 공격의 원리를 설명할 수 있다각 공격의 기본 방어법을 안다.env 파일 관리의 3원칙을 실천할 수 있다

AI가 만든 코드의 45%에 보안 취약점이 있습니다

AI가 만들어준 코드가 잘 작동합니다. 하지만 보안 전문가가 보면 자물쇠 없는 집과 같습니다. 도둑이 아직 안 들어왔을 뿐, 문은 열려 있습니다.

"작동한다"와 "안전하다"는 전혀 다른 문제입니다. AI는 기능 구현에 집중하지, 보안까지 신경 쓰지 않는 경우가 많습니다.

웹 보안의 기본 위협과 방어법을 알면 AI가 만든 코드의 보안 허점을 발견하고 수정을 요청할 수 있습니다.


article

핵심 내용

보안은 "작동한다 ≠ 안전하다"입니다. AI가 만든 코드도 예외가 아닙니다.

비유하면 자물쇠 없는 집입니다. 도둑이 안 들어온 건 운이 좋았을 뿐, 문이 잠겨있는 건 아닙니다. 웹 보안도 마찬가지로, 공격이 없었다고 안전한 게 아닙니다.

가장 흔한 웹 보안 위협 2가지: XSS와 SQL Injection

XSS = Cross-Site Scripting. 악성 스크립트를 웹페이지에 삽입하는 공격입니다. 이름에 CSS가 아닌 XSS를 쓰는 이유는 CSS(스타일시트)와 구분하기 위해서입니다.

XSS 공격 예시 댓글란에 이런 내용을 입력합니다: `<script>alert('해킹')</script>` 다른 사용자가 이 댓글을 볼 때 스크립트가 실행됩니다. 심하면 쿠키 탈취, 개인정보 유출로 이어집니다. 방어법: 사용자 입력을 화면에 표시할 때 반드시 이스케이프 처리. React는 기본으로 해주지만, `dangerouslySetInnerHTML` 사용 시 주의가 필요합니다.

SQL Injection = 입력값에 SQL 명령어를 삽입하는 공격입니다. 데이터베이스를 직접 조작할 수 있어 매우 위험합니다.

SQL Injection 예시 로그인 비밀번호에 `' OR 1=1 --` 을 입력하면 SQL 쿼리가 변조되어 모든 계정에 접근 가능해집니다. 방어법: 입력값을 직접 SQL에 넣지 말고, Prepared StatementORM(Prisma, Drizzle 등)을 사용합니다.

악성 스크립트를 웹페이지에 삽입하는 공격은?

.env 파일을 실수로 Git에 올렸을 때 파일만 삭제하면 안전하다

key

핵심 용어

1. API 키는 .env 파일에

코드에 직접 쓰지 않기. 실수로 공개되면 악용 가능

2. .gitignore에 .env 추가

Git에 절대 올리지 않기. 한 번 올라가면 히스토리에 영구 기록

3. 실수로 올렸으면 키 즉시 재발급

Git 히스토리에 남아있으므로 삭제만으론 부족. 키 자체를 교체해야 안전

check_circle

핵심 정리

  • 1XSS = 스크립트 삽입 공격 → React 이스케이프로 방어
  • 2SQL Injection = SQL 변조 공격 → ORM/Prepared Statement로 방어
  • 3.env 3원칙: .env에 보관, .gitignore에 추가, 유출 시 즉시 재발급
  • 4AI 코드도 보안 점검 필수 — 작동 ≠ 안전

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작