Skip to content

fix: getParameterValues에서 앰퍼샌드도 이스케이프하도록 수정 - #233

Open
leejongyoung wants to merge 1 commit into
eGovFramework:mainfrom
leejongyoung:upstream-submit
Open

leejongyoung wants to merge 1 commit into
eGovFramework:mainfrom
leejongyoung:upstream-submit

Conversation

@leejongyoung

@leejongyoung leejongyoung commented Oct 25, 2026 •

Copy link
Copy Markdown

수정 사유 Reason for modification

  • 버그수정 Bug fixes
  • 기능개선 Enhancements
  • 기능추가 Adding features
  • 기타 Others

수정된 소스 내용 Modified source

getParameterValues("value")는 기존에 A&B를 그대로 돌려준 반면 getParameter("value")는 A&B로 변환해서 돌려줬습니다. 이제 두 접근자 모두 기존 5문자 HTML 이스케이프 로직을 사용하며, StringBuffer와 기존 엔티티 이름은 그대로 둡니다.

서블릿이 들고 있는 원본 파라미터가 바뀌지 않도록 배열을 복제해서 이스케이프합니다. 반복해서 읽어도 결과가 일정하고, 돌려받은 배열을 고쳐도 다음 읽기에는 영향을 주지 않습니다. null·순서·빈 값·유니코드·기존 스칼라 첫 값 의미·엔티티 형태 입력 처리·파라미터 맵 위임은 그대로 유지합니다. README에는 사용자가 보는 동작을 기록했습니다.

관련 포크 이슈: leejongyoung#4

의존성·인증·설정 변경 없음. 광범위한 XSS나 파라미터 맵 재설계 없음.

JUnit 테스트 JUnit tests

  • JUnit 테스트 JUnit tests
  • 수동 테스트 Manual testing

Maven 3.9.9, OpenJDK 21(Java release 17 컴파일):

  • mvn -B -ntp -Dtest=HTMLTagFilterRequestWrapperTest test: 7개 테스트, 실패·오류·건너뜀 0건. 수정 전 재현 테스트 5건은 모두 실패했습니다.
  • 격리된 내장 Tomcat 10.1.59와 HTMLTagFilter를 거친 실제 자동 HTTP 폼 POST: 5개 문자·반복 값/읽기·반환 배열 격리·누락/빈 값·유니코드·엔티티 형태 입력을 검증했습니다.
  • mvn -B -ntp package --file pom.xml -DexcludedGroups=browser: BUILD SUCCESS, 415개 테스트, 실패·오류·건너뜀 0건.
  • git diff --check: 통과.

내장 컨테이너 검사는 전체 애플리케이션 DB/auth E2E가 아닙니다. browser 태그 테스트는 패키지 검사에서 제외했습니다.

테스트 브라우저 Test Browser

  • Chrome
  • Firefox
  • Edge
  • Safari
  • Opera
  • Internet Explorer
  • 기타 Others: 내장 Tomcat 대상 자동 Java HTTP 클라이언트

테스트 스크린샷 또는 캡처 영상 Test screenshots or captured video

위 자동 단언과 Maven 테스트 결과로 백엔드 동작을 검증했습니다. 브라우저 UI 변경 없음.

@leejongyoung leejongyoung changed the title fix: escape ampersands consistently in getParameterValues fix: getParameterValues에서 앰퍼샌드 일관되게 이스케이프 Oct 26, 2026
@leejongyoung leejongyoung changed the title fix: getParameterValues에서 앰퍼샌드 일관되게 이스케이프 fix: getParameterValues에서 앰퍼샌드도 이스케이프하도록 수정 Oct 26, 2026
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.

1 participant