Composer 링크 모달에서 생성된 링크에 ' (%27)이 포함되어 있으면 링크가 깨집니다

@nathank의 보고서는 버그를 발견했을 때 우연히 진행 중이었던 특정 니치 작업에 초점을 맞추고 있습니다. 그러나 이 버그는 Data Explorer와 아무런 관련이 없습니다. 보고서가 지나치게 좁은 범위에 초점을 맞추고 있으며, 관련 없는 data-explorer 태그(적절한 태그는 #composer입니다)가 사용되었기 때문에, Discourse 팀이 이를 해석하는 데 어려움이 있거나 적절한 수준의 관심을 받지 못할 수 있다는 우려가 있습니다.

다음 조건에서는 오류가 보편적으로 발생합니다:

  • URL에 퍼센트 인코딩된 콘텐츠가 포함된 경우
  • 링크가 “링크 삽입” 대화 상자를 통해 게시글에 추가된 경우

이러한 조건에서는 URL이 항상 손상됩니다.

재현 단계:

  1. 웹 브라우저에서 다음 URL을 엽니다:
    https://en.wikipedia.org/wiki/Horncastle_boar%27s_head
    (URL에 ' 문자의 퍼센트 인코딩인 %27이 포함되어 있음을 참고하십시오)
    :slightly_smiling_face: 예상된 페이지가 열립니다.
  2. 게시글 작성기에서 “링크” 아이콘을 클릭합니다.
    링크 삽입” 대화 상자가 열립니다.
  3. 대화 상자의 “링크 또는 주제” 필드에 위의 URL을 입력합니다.
  4. 삽입” 버튼을 클릭합니다.

:bug: 위의 절차를 통해 추가된 링크의 대상은 다음과 같이 잘못됩니다:
https://en.wikipedia.org/wiki/Horncastle_boar%2527s_head

올바른 URL인:
https://en.wikipedia.org/wiki/Horncastle_boar%27s_head

대신 잘못된 URL이 표시됩니다.

이 링크는 의도된 페이지로 연결되지 않습니다.

이것은 퍼센트 인코딩 %27% 문자가 중복 인코딩되어, %가 자체 퍼센트 인코딩인 %25으로 대체되었기 때문에 발생했으며, 그 결과 올바른 URL 콘텐츠인 %27%2527으로 손상되었습니다.

플랫폼:

운영 체제

  • Windows 11

브라우저

  • Google Chrome 139.0.7258.128

Discourse

12c80d43adeb87cc18604ace0430a75d277d7662

추가 정보:

try.discourse.org의 "안전 모드"에서 오류를 재현할 수 있습니다.


이 오류는 모든 작성기 모드에서 발생합니다.

3개의 좋아요