피드로 돌아가기
URL Encoding Explained: What Every Developer Needs to Know (2026)
Dev.toDev.to
Backend

RFC 3986 준수를 통한 URL 데이터 무결성 확보 및 Injection 방어

URL Encoding Explained: What Every Developer Needs to Know (2026)

Progragon Technolabs2026년 4월 13일5beginner

Context

URL 내 ASCII 외 문자 및 Reserved Character 사용 시 발생하는 구문 해석 오류 분석. 특수 문자가 구분자(Delimiter)로 오인되어 쿼리 파라미터가 훼손되는 데이터 무결성 문제 해결 필요.

Technical Solution

  • UTF-8 바이트 시퀀스를 기반으로 %XX 형태의 Hex Digit로 변환하는 Percent Encoding 적용
  • Unreserved, Reserved, Other 세 가지 문자 범주를 정의하여 문맥에 따른 선택적 인코딩 수행
  • Path Segment와 Query String의 공백 처리 차이(%20 vs +)를 구분하여 데이터 전송 규격 일치
  • Parameter Value에는 encodeURIComponent를, 전체 URL 구조 유지에는 encodeURI를 사용하는 계층적 인코딩 전략 수립
  • URL Encoding과 HTML Encoding의 목적과 적용 시점을 분리하여 Context-Aware 보안 계층 설계
  • 이미 인코딩된 문자열에 다시 인코딩을 수행하는 Double Encoding 방지를 위해 Raw Data 기반 처리 원칙 적용

- 쿼리 파라미터 값 할당 시 반드시 encodeURIComponent() 적용 여부 확인 - Path 내 공백은 %20으로, Query String 내 공백은 + 또는 %20으로 처리하는 규격 검토 - URL을 HTML attribute(href 등)에 삽입 시 'URL Encode 후 HTML Encode' 순서 준수 - API 요청 전 입력 데이터의 Double Encoding 발생 가능성 검증

원문 읽기