- 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