사용자 입력 검증

커스텀 사용자 입력 검증을 구현할 수 있는지 아시는 분 계신가요? 특히 신규 사용자, 신규 관리자 배지, 신규 사용자 필드에 대한 검증이 필요합니다.

침투 테스트를 수행한 결과, 해당 영역에서 HTML 인젝션 및 기타 악성 입력에 취약한 것으로 확인되었습니다. 보안성을 높이기 위해 이러한 입력을 추가로 검증할 수 있는 방법(정규식 사용 또는 동일한 결과를 얻을 수 있는 다른 방식)이 있는지 궁금합니다.

미리 감사드립니다!

네, 가능하합니다. 귀하나 전문적인 Discourse 플러그인 개발자가 모델을 검증하는 데 사용할 수 있는 “상당히 간단한” 플러그인을 작성할 수 있습니다.

아마도 Marketplace 채널에 요청 사항을 게시하는 것이 좋을 것 같습니다.

어떤 필드가 HTML 인젝션에 취약합니까?

제가 하려던 말이 딱 그거예요.

개발자들에게 우리보다 먼저 비공개로 알려주길 바랍니다 :slight_smile:

Discourse가 보안 취약점 발견에 대해 보상하는 프로그램에 참여하지 않나요?

맞습니다: hackerone

빠르게 답변해 주셔서 감사합니다!

영향을 받는 파라미터는 다음과 같습니다:

사용자 생성: name, title, location, bio_raw

배지: name, description, long_description

사용자 필드: name, description

저희는 커뮤니티의 일부이지만 스태프는 아닙니다. 이 문제에 대해서는 스태프 측의 답변을 받아보셔야 합니다. 다만, 해당 팀이 취약점과 보안에 얼마나 많은 관심을 기울이고 있으며, 업계 표준 프레임워크를 사용하고 있다는 점을 고려하면, 답변이 나올 때까지 판단을 보류하는 것이 좋겠습니다.

이것은 사용자가 직접 완화 조치를 취해야 할 것 같지는 않지만, 동시에 이미 어떤 형태로든 해결되었을 수도 있습니다.

만약 HTML 인젝션이 허용된다면 매우 놀라울 것입니다. 여기 프로필을 편집하여 간단한 예시로 증명해 주십시오.

메타에 오신 것을 환영합니다, @Cal :wave:

이 필드들은 모두 정제(sanitized)/전환(escaped) 처리됩니다. 또한 Discourse에는 기본적으로 CSP가 활성화되어 있습니다.

이것도 마찬가지로 정제 처리됩니다. 관리자만 접근할 수 있으며, CSP도 적용됩니다.

CSP가 켜져 있는 상태에서 발생하는 사용자 입력 보안 문제를 발견하셨다면, 여기에서 알려주시면 감사하겠습니다.