Skip to content

fix: 상류 라운드34 백포트 — 결함 14건(보안 2) + 동작 변경 3 - #52

Merged
centwon merged 1 commit into
mainfrom
fix/round34-backport
Sep 23, 2026
Merged

centwon merged 1 commit into
mainfrom
fix/round34-backport

Conversation

@centwon

@centwon centwon commented Sep 23, 2026

Copy link
Copy Markdown
Owner

요약

상류 AvaloniaRichEditor의 PR #53(라운드34: 결함 32건, 결정 4건)을 이 포트로 옮겼습니다. 각 항목을 이 포트에서 먼저 측정했고, 빨강이 된 것만 고쳤습니다.

  • 소스 변경을 되돌리면 새 테스트 24건이 모두 빨강이 되는 것을 확인했습니다(반증).
  • 테스트: 832건 → 862건

보안

  • 붙여넣은 HTML 때문에 다른 컴퓨터로 접속이 일어났습니다. 네트워크 공유를 가리키는 그림(file://host/share/…, ms-clipboard-file: 변형 포함)을 열면 SMB 연결이 시작되어 NTLM 인증 정보가 노출될 수 있습니다. 붙여넣기 기본값(%TEMP% 외 로컬 파일 차단)에서는 막혔지만, 로컬 파일 그림을 허용한 호스트 앱에서는 열렸습니다. 21초 동안 연결을 시도하는 것을 실측했습니다. 이제 네트워크 공유는 설정과 관계없이 읽지 않습니다.
  • javascript:, vbscript:, data: 링크를 읽을 때 버립니다. 글자는 남기고 링크만 없앱니다.

결함

  • 변환 뒤 캐럿 위치: 인라인 표나 그림을 블록으로 바꾸면 캐럿이 문서 밖 문단(표)이나 문단 끝 너머(그림)에 남았습니다.
  • 우클릭 뒤 표 선택: 테두리로 선택한 표가 다른 곳을 우클릭해도 선택된 채 남아, 이어서 Delete를 누르면 그 표가 지워졌습니다.
  • 끌기 복사 플래그: AllowTables/AllowImages가 꺼져 있어도 Ctrl+끌기로 복사됐습니다.
  • 빈 되돌리기 단계 8종: 내어쓰기, 정렬, 줄 간격, 줄 높이, 목록 해제, 모두 바꾸기, 여백, 원본 크기에서 아무것도 바뀌지 않아도 되돌리기 단계가 남았습니다.

동작 변경 (상류 사용자 결정)

  • 블록 삽입 위치: 문단 맨 앞이면 문단 앞에, 끝이면 뒤에 넣습니다. 이전에는 이때도 문단을 나눠 빈 문단이 하나 생겼습니다.
  • Tab: 어느 표든 마지막 셀에서 누르면 그 표에 행을 추가합니다.
  • 툴바 인용 버튼: 목록 버튼 옆에 추가했습니다. 새 아이콘 슬롯 RichEditorIcon.Quote를 만들어 PublicAPI.Unshipped.txt에 기록했습니다.

포트에 이미 맞게 되어 있던 것 (측정만)

메뉴로 표를 지운 뒤의 캐럿, 인라인 그림을 키로 지우거나 잘라낼 때의 캐럿, 선택 위에 그림이나 엑셀 셀 붙여넣기, 셀과 빈 문단의 인용 막대, 디코드 못 한 그림의 자리, 툴바 용지 동기화, 다른 앱용 HTML의 문단 여백, 읽기 전용 검사.

이번에 하지 않은 것

검증

  • 라이브러리 빌드 경고 0개(테스트 프로젝트의 xUnit1031 2건은 원래 있던 것)
  • 테스트 862건 통과(Windows 로컬)
  • 실기 확인(사용자): 툴바 인용 버튼, 블록 삽입 위치, 우클릭 뒤 표 선택 해제

🤖 Generated with Claude Code

상류 AvaloniaRichEditor PR #53의 결함 32건·결정 4건을 이 포트에서 먼저 측정했고, 빨강이 된 것만 고쳤다.
소스를 되돌리면 새 테스트 24건이 빨강(반증 완료). 테스트 832 → 862.

보안
- 붙여넣은 HTML의 네트워크 공유 그림(file://host/share, ms-clipboard-file 포함)을 열어 SMB 연결 → NTLM 노출.
  붙여넣기 기본값(%TEMP%만)은 피했지만 로컬 파일을 허용한 호스트에서 열렸다(21초 연결 실측). UNC는 읽지 않는다.
- javascript:/vbscript:/data: 링크를 읽을 때 버린다(글자는 남김).

결함
- 인라인 표/그림 → 블록 변환 뒤 캐럿이 문서 밖/문단 끝 너머에 남음
- 테두리로 잡은 표가 다른 곳 우클릭 뒤에도 선택된 채 남음(Delete가 표를 지움)
- AllowTables/AllowImages 꺼져도 Ctrl+끌기 복사
- 빈 되돌리기 단계 8종(내어쓰기·정렬·줄 간격·줄 높이·목록 해제·모두 바꾸기·여백·원본 크기)

동작 변경(상류 사용자 결정)
- 블록 삽입: 문단 맨 앞이면 앞에, 끝이면 뒤에(빈 문단을 만들지 않음)
- Tab: 어느 표든 마지막 셀에서 그 표에 행 추가
- 툴바 인용 버튼(새 아이콘 슬롯 RichEditorIcon.Quote, Unshipped)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@centwon
centwon merged commit 7e02052 into main Sep 23, 2026
2 checks passed
centwon added a commit that referenced this pull request Sep 23, 2026
feat: 페이지 여백 + 상류 PR #50·#52 백포트
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