Skip to content

[FEATURE] 리다이렉트 체인 테스트 fixture 추가#19

Merged
minsoo0506 merged 24 commits into
devfrom
feat/#17-corpus-redirect-chain
May 18, 2026
Merged

[FEATURE] 리다이렉트 체인 테스트 fixture 추가#19
minsoo0506 merged 24 commits into
devfrom
feat/#17-corpus-redirect-chain

Conversation

@minsoo0506

Copy link
Copy Markdown
Contributor

요약

URL 검역 엔진의 리다이렉트 추적 로직을 검증하기 위한 redirect-chain 테스트 fixture를 추가했습니다.
스크린샷 2026-05-18 오후 12 03 41

주요 변경 사항:

  • test-sites/redirect-chain Next.js 테스트 사이트 추가
  • 각 리다이렉트 hop마다 0.5초 지연 후 302 Location 응답 반환
  • 정상/다중/외부/unsafe scheme/max-hop/의심 최종 페이지 케이스 구현
  • tests/corpus/urls.yaml에 redirect-chain 테스트 URL 기대 결과 추가
  • 실제 악성 행위, 파일 다운로드, 외부 수집, 실제 credential 전송은 구현하지 않음

테스트 경로별 목적

/redirect/1

스크린샷 2026-05-18 오후 12 04 28

단일 리다이렉트 기본 케이스입니다.

/redirect/1 -> /final/safe

엔진이 302 Location을 한 번 따라가고 최종 URL을 /final/safe로 정상 갱신하는지 확인합니다.

/redirect/3

스크린샷 2026-05-18 오후 12 04 28

다중 리다이렉트 체인 케이스입니다.

/redirect/3 -> /hop/1 -> /hop/2 -> /final/safe

엔진이 첫 번째 리다이렉트에서 멈추지 않고 연속된 hop을 끝까지 추적하는지 확인합니다.

/redirect/external

스크린샷 2026-05-18 오후 12 05 18

외부 도메인 이동 케이스입니다.

/redirect/external -> https://example.com/

리다이렉트 중 출처가 바뀌는 상황을 감지하고 cross_origin 계열 신호를 남길 수 있는지 확인합니다. 실제 악성 도메인이 아닌 example.com만 사용합니다.

/redirect/unsafe-scheme

스크린샷 2026-05-18 오후 12 06 23

비허용 scheme 차단 케이스입니다.

Location: javascript:alert(1)

브라우저에서는 보안 정책상 화면 이동이 보이지 않을 수 있지만, 엔진은 Location 헤더를 보고 javascript: 같은 비허용 scheme을 따라가지 않고 차단해야 합니다.

/redirect/max-hop

스크린샷 2026-05-18 오후 12 06 58

최대 hop 제한 초과 케이스입니다.

/redirect/max-hop -> /hop/max/1 -> /hop/max/2 -> ...

기본 unchain_max_hops = 5 제한을 초과하도록 긴 체인을 구성했습니다. 엔진이 과도한 redirect 체인을 무한 추적하지 않고 max_hops_reached 신호를 남기는지 확인합니다.

/redirect/to-suspicious

스크린샷 2026-05-18 오후 12 07 26

리다이렉트 후 의심 최종 페이지 도달 케이스입니다.

/redirect/to-suspicious -> /final/suspicious

리다이렉트 자체는 정상적으로 끝나지만, 최종 목적지에 카드번호, CVC, 만료일, 카드 비밀번호 앞 2자리 입력 UI가 있는 상황을 테스트합니다. 입력 요소는 readOnly, name 없음, 버튼 비활성화 상태라 실제 정보 수집이나 전송은 발생하지 않습니다.

/final/safe

정상 최종 목적지 페이지입니다.

정상 redirect chain의 최종 URL로 사용합니다.

/final/suspicious

의심 최종 목적지 페이지입니다.

콘텐츠 분석기가 금융 정보 입력 UI와 비밀번호 필드를 감지할 수 있는지 확인하기 위한 비활성 테스트 페이지입니다.

연관 이슈 및 Close 할 이슈

close #17

Pull Request 체크리스트

TODO

  • 최종 결과물을 확인했는가?
  • 의미 있는 커밋 메시지를 작성했는가?

@minsoo0506 minsoo0506 requested review from kbh0218 and sunm2n May 18, 2026 03:08
@minsoo0506 minsoo0506 self-assigned this May 18, 2026

@sunm2n sunm2n left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!
테스트 페이지 코드에서 일부 로직 개선을 하면 좋을만한 것들이 한 두개 보이긴 했지만 테스트용 페이지라서 굳이 수정보다는 지금 이상태로 충분하다고 판단해서 코멘트는 따로 달지 않았습니다

@minsoo0506 minsoo0506 merged commit 9aa963b into dev May 18, 2026
@minsoo0506 minsoo0506 deleted the feat/#17-corpus-redirect-chain branch May 18, 2026 09:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] 리다이렉트 체인 테스트 fixture 추가

2 participants