본문 바로가기
카테고리 없음

웹 보안 기초 – 개발자라면 꼭 알아야 할 취약점 5가지

by 준생님 2025. 4. 5.

🛡️ 왜 웹 보안은 중요할까?

아무리 멋진 웹사이트도 보안이 허술하면 사용자의 정보가 유출되고, 서비스가 마비될 수 있습니다. 실제로 많은 해킹 사고는 기본적인 보안 실수로부터 시작됩니다.

따라서 웹 개발자라면 반드시 기본적인 보안 위협과 그 대응 방법을 이해하고 있어야 합니다.

📌 반드시 알아야 할 취약점 5가지

  1. XSS (Cross-Site Scripting)
  2. CSRF (Cross-Site Request Forgery)
  3. SQL Injection
  4. Open Redirect
  5. 정보 노출 (Sensitive Data Exposure)

1️⃣ XSS – 사용자 브라우저를 노리는 공격

XSS는 공격자가 웹 페이지에 악성 JavaScript를 삽입해 사용자 브라우저에서 실행되도록 하는 공격입니다.

<script>alert('해킹됨!')</script>

입력폼이나 댓글란을 통해 위와 같은 스크립트를 삽입하면, 해당 페이지를 본 사용자의 브라우저에서 이 코드가 실행됩니다.

대응법: 사용자 입력값을 HTML로 출력하기 전 이스케이프 처리 필수

2️⃣ CSRF – 사용자의 인증을 악용한 공격

CSRF는 인증된 사용자의 권한을 도용해 공격자가 의도한 요청을 보내게 만드는 기법입니다.

예: 로그인 상태의 사용자가 악성 링크를 클릭했을 때
http://yourbank.com/transfer?to=hacker&amount=10000

사용자는 클릭만 했지만, 서버 입장에서는 정상 요청으로 착각하게 됩니다.

대응법: CSRF 토큰을 발급하고, 요청 시 반드시 함께 검증

3️⃣ SQL Injection – 데이터베이스를 노리는 공격

SQL Injection은 쿼리문에 악의적인 SQL 구문을 삽입해 데이터베이스를 조작하는 공격입니다.

SELECT * FROM users WHERE id = '1 OR 1=1';

위와 같은 쿼리는 모든 사용자 정보를 반환하게 됩니다. 로그인 우회, 데이터 유출, 테이블 삭제까지 가능해집니다.

대응법: Prepared Statement(바인딩 처리) 또는 ORM 사용

4️⃣ Open Redirect – 신뢰를 이용한 피싱 유도

사용자를 외부 악성 사이트로 자동 이동시키는 취약점입니다.

예: https://example.com/login?redirect=http://badsite.com

이런 방식으로 사용자를 속여 피싱 사이트로 보내 개인정보를 탈취할 수 있습니다.

대응법: redirect 대상 URL을 화이트리스트로 제한

5️⃣ 정보 노출 – 로그나 응답에 민감한 데이터 포함

에러 메시지나 서버 응답에 DB 구조, 경로, 인증 토큰 등의 민감한 정보가 포함되면 공격자에게 실마리를 제공하게 됩니다.

대응법: 운영 환경에서는 디버깅 정보 노출 금지, 에러 메시지 최소화

🔐 기본 보안 수칙 요약

  • 입력값은 검증 + 이스케이프 처리
  • 쿼리는 바인딩 처리 (SQL Injection 방지)
  • 모든 요청에 CSRF 토큰 포함
  • 민감 정보는 응답, 로그에 출력 금지
  • 세션/토큰은 HttpOnly, Secure 옵션 설정

🧠 실전에서 어떻게 적용할까?

  • React, Vue 등의 프레임워크에서도 반드시 백엔드에서 검증
  • Express, Django, Spring 등 서버 프레임워크의 기본 보안 기능 확인
  • OWASP Top 10 목록을 기준으로 점검

실무에서는 보안이 성능보다 더 중요한 순간이 많습니다. 1초 느린 웹사이트는 용서받아도, 데이터 유출은 용서받기 어렵습니다.

🎯 마무리 – ‘보안’은 선택이 아닌 기본

보안은 단지 보안팀의 일이 아닙니다. 개발자가 구조를 설계할 때부터 책임져야 할 영역입니다.

위 5가지 보안 취약점은 자주 발생하고, 피해가 크며, 대응 방법도 분명합니다. 처음부터 습관화하면 안정적인 서비스를 만드는 개발자가 될 수 있습니다.

🧯 이 글이 도움이 되셨다면 댓글이나 공유 부탁드립니다!

다음 글에서는 “개발자 포트폴리오 만드는 법”을 다룰 예정입니다.