307 words
2 minutes
XSS와 SQL 인젝션

(ㅠ3ㅠ)

  • SQL 인젝션 = 데이터베이스(서버)를 공격 → 쿼리를 안전하게 만들면 됨.
  • XSS = 다른 사람의 브라우저(사용자)를 공격 → 웹 페이지에 출력할 때 안전하게 인코딩/출력하면 됨.

사실상 하나는 서버 공격, 하나는 클라이언트 공격으로 구분해야 한다.

공통 원칙#

  • 입력은 절대 신뢰하지 말라.
  • 방어는 여러 층으롤 구성.
  • 최소 권한을 적용해라.

대응법#

SQL 인젝션 대응

  • 쿼리에 사용자 입력 +로 붙이지 말고 항상 파라미터 바인딩 사용
  • 입력 검증 > 허용되는 형식,패턴=화이트리스트만 통과
  • 최소 권한 원칙 > DB 계청에 불필요한 권한 주지 않음

XSS 대응

  • 컨텍스트별 이스케이프 처리 등 → HTML·JS·URL 등 위치에 맞게 인코딩해서 출력
  • CSP 적용 > 외부 스크립트와 인라인 스크립트 실행 제안하기
  • 서버는 템플릿 엔진의 자동 이스케이프 켜기 > 사용자 입력 자동처리
  • 클라이언트는 안전한 DOM 조작, innerHtml 쓰지않기 sanitizer 같은거 쓰기
XSS와 SQL 인젝션
softourr.github.io/xss와-sql-인젝션.md
Author
softourr
Published at
2025-11-01