[study] URL 리라이트(URL Rewriting)란 무엇인가? [JSESSIONID를 URL에 포함하는 방식]

2025. 3. 17. 21:46·◈ Study/기초튼튼 개발지식🥔
728x90


- URL 리라이트(URL Rewriting)란 무엇인가?

쿠키를 사용할 수 없는 환경에서도 세션을 유지하기 위해 JSESSIONID를 URL에 포함하는 방식

- 왜 URL 리라이트를 사용하는 걸까?

1) 쿠키 비활성화 환경 지원

어떤 사용자들은 브라우저 설정에서 쿠키를 차단하거나, 쿠키 없는 환경(일부 프라이버시 모드)에서 접속할 수도 있음. 이때 URL 리라이트를 사용하면 세션이 끊기지 않고 유지가 됨.
  • 쿠키를 지원하지 않는 브라우저
  • 쿠키가 차단된 환경(보안 정책, 프라이버시 설정 등)

2) 초기 로그인 페이지에서 세션 유지

어떤 웹 애플리케이션에서는 초기 요청에서 쿠키를 설정하기 전에 세션이 필요할 수 있음. 이 경우, URL에
JSESSIONID를 포함해 사용자를 식별함.

3) 서드파티 쿠키 차단 우회

일부 환경에서는 서드파티 쿠키(제3자가 발급한 쿠키)를 차단하는데, URL 리라이트를 사용하면 이런 문제를 우회할 수도 있음.

- URL 리라이트 방식 예시

# URL 뒤에 ;jsessionid=세션값을 붙여서 세션 유지
https://example.com/dashboard;jsessionid=ABC123XYZ456

- URL 리라이트의 단점 & 보안 위험

1) URL에 세션 ID가 노출됨 → 보안 취약

  • JSESSIONID가 URL에 포함되면, 브라우저의 히스토리, 로그 파일, 북마크 등에 남을 수 있음.
  • URL을 복사해서 공유하면, 세션이 탈취될 가능성이 있음.

2) 검색 엔진 크롤링 문제

  • 검색 엔진이 JSESSIONID가 포함된 URL을 크롤링하면, 여러 개의 중복된 페이지가 색인될 수 있음.

3) 세션 하이재킹(Session Hijacking) 위험

  • 공격자가 URL을 가로채서 세션을 탈취할 가능성이 있음.

 


 

보안이 중요한 서비스(금융 서비스 등)에서는 가급적 쿠키 방식을 선호하고,
URL 리라이트는 최소한으로 사용해야 함

 

[Error Note] URL 리라이트 때문에 request block 발생하는 문제 해결하기 [;jsessionid=xxx가 사용되면서 reque

- URL 리라이트 때문에 request block 발생하는 문제 해결하기WAF, 방화벽 등에서 ;jsessionid=xxx가 포함된 URL을 비정상적인 요청으로 간주하고 차단한다.- 해결 방법1) WAF 예외 설정WAF 또는 방화벽에

yermi.tistory.com


728x90
'◈ Study/기초튼튼 개발지식🥔' 카테고리의 다른 글
  • [study] 바닐라 자바스크립트란 무엇인가? [Vanilla JS, 아무 라이브러리나 프레임워크 없이 순수한 기본 JavaScript만 사용한 코드]
  • [study] JSESSIONID와 tracking-mode 설정 방식 [클라이언트와 세션 ID를 주고받는 방식을 설정하는 속성]
  • [study] JSESSIONID란? [Java EE 기반 웹 애플리케이션에서 세션을 식별하는 고유한 ID]
  • [study] Apache, GPL, MIT 오픈소스 라이선스 비교 [개발자를 위한 오픈 소스 라이선스 가이드]
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (937)
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (32)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (40)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (4)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (89)
        • 백준(BOJ)👨🏻‍💻 (70)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
        • 알고리즘(Algorithm)🎡 (10)
      • ◈ Study (102)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (6)
      • ◈ 공부모임 (39)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (11)
      • ◈ 자격증 공부 (37)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (113)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (44)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 태그

    SQL
    Database
    html
    spring
    프로그래밍
    일상
    백준
    Error Note
    javascript
    CSS
    코딩
    Oracle
    Project
    자바스크립트
    코딩 테스트
    꿀팁
    Java
    백준 티어
    jsp
    BOJ
  • 250x250
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[study] URL 리라이트(URL Rewriting)란 무엇인가? [JSESSIONID를 URL에 포함하는 방식]
상단으로

티스토리툴바