미인증 사용자의 주제 생성 기능 비활성화

안녕하세요, 스팸 계정 처리에 문제가 있습니다. 이 계정들은 로컬 계정을 통해 생성됩니다. 스팸 계정 중 하나를 자세히 살펴보면 기본 이메일이 확인되지 않음으로 표시됩니다. 이메일을 확인하기 전까지 이런 종류의 계정이 새 주제를 생성하지 못하도록 막고 싶은데, 어떻게 하면 될까요?

이 설정이 인증되지 않은 사용자 삭제에 도움이 될지 모르겠습니다.

purge_unactivated_users_grace_period_days

이 값을 0으로 설정하면 비활성화 상태의 사용자가 영원히 유지되는 건가요? 이 필드의 용도와 완전히 반대되는 것 같습니다.

이메일이 인증되지 않았다면 게시물을 작성할 수 없어야 합니다. 이들이 임시 사용자(staged users)인가요? (즉, 익명 사용자의 이메일 등록을 허용하고 있는 건가요?)

즉, 익명 사용자의 이메일 전송을 허용하나요?

이걸 어떻게 확인하나요? enable staged users라는 설정이 있는데, 수신 이메일을 처리할 때 자동으로 스테이징된 사용자를 생성합니다.라고 적혀 있고 체크되어 있습니다. 이게 질문하신 내용인가요?

현재 해당 스팸 계정 권한은 이렇습니다.

그 계정은 승인된 사용자로 보이지 않습니다.

비활성화된 계정으로 사이트에 로그인하는 방법을 정확히 알 수 없습니다. 특별한 로그인 방법을 사용하고 계신가요?

특별한 로그인 방법이 있나요?

로컬 로그인과 구글 OAuth 두 가지 방법만 있습니다. 그의 도메인이 gmail이 아니므로 구글 계정을 사용하지 않는다고 확신합니다.

제 문제와 유사한 문제를 다루는 다른 스레드가 있는 것을 확인했습니다.

그 스레드에서 진행 상황이 있는지 모르겠습니다.

아, 맞다. 그건 PM에서 더 논의했었지. SSO가 이메일을 Discourse로 전달하기 전에 이메일을 검증하지 않았기 때문이야.

이 문제의 근본 원인을 찾기 위해 더 어떻게 진행해야 할까요? DM(다이렉트 메시지)으로 당신(또는 다른 누군가)에게 연락해야 할까요?

아니요, 다른 사람들이 아이디어를 제시할 수 있도록 공개 토픽을 두는 것이 가장 좋습니다. :+1:

불행히도 이미 발생한 일에 대해 더 많은 아이디어를 제시하기는 어렵습니다. 게시한 후 계정을 비활성화한 사람이 있었나요? (직원 작업 로그에서 ‘사용자 비활성화’ 항목을 확인해 보실 수 있습니다)

네, 해당 계정이 스팸 토픽을 하나 생성하는 것을 확인한 후 그 계정을 비활성화했습니다. nginx의 access.log에도 이 사용자로부터의 새로운 토픽 활동이 전혀 표시되지 않았습니다. 웹 인터페이스를 사용하지 않고 이 사용자가 어떻게 새로운 토픽을 생성할 수 있는지 정말로 궁금합니다. 웹 인터페이스 외에 토픽을 생성할 다른 방법이 있을 것 같아서 도움을 요청합니다.

계정을 비활성화하셨다면, 이메일이 미인증 상태인 이유를 설명할 수 있습니다(비활성화 과정의 일부로 이메일 재인증을 해야 하기 때문입니다).

아니요, 그 계정은 먼저 이메일 인증이 완료되지 않은 상태에서 스팸 주제를 게시했기 때문에 해당 계정을 비활성화했습니다.

우리가 서로 다른 말로 대화하고 있는 것 같습니다. :slight_smile: 'Silence’나 'Suspend’가 아니라, 구체적으로 '비활성화(deactivate)'를 말하는 거예요:

관리자 작업 로그를 확인해 보셨나요?

죄송합니다, 그 스팸 주제 이후 해당 계정을 음소화하고 정지했다는 뜻이었어요.

계정을 비활성화하지 않았다면, 어떻게 일반 이메일 인증 단계를 우회했는지 파악해야 할 것 같습니다. 지금까지 말씀해 주신 내용으로는 이것이 어떻게 가능한지 이해가 되지 않습니다.

지역적으로 가입하면 계정 활성화를 위해 이메일이 전송되며, 이를 통해 이메일이 인증됩니다. 구글로 가입하는 경우에도 이메일이 인증됩니다.

nginx 로그를 제외하고, 어떤 단서를 줄 수 있는 로그가 있나요?

제가 생각하기에 그런 건 없습니다. 이 사이트의 유일한 관리자/운영자인가요?

저는 해당 웹사이트의 관리자입니다. 단순히 무슨 일이 일어나고 있는지 확인해보려 할 뿐, 그 서버가 어디에서 실행 중인지도 모르고 SSH 접근 권한도 없습니다.

그런데 이상한 점을 하나 발견했는데, 누군가가 “system” 계정으로 로그인하여 “Test” 계정을 생성한 뒤 즉시 삭제한 흔적이 보입니다.

discourse-1

관리자들에게 해당 시간에 system 계정으로 로그인하여 Test 계정을 만든 사람이 있는지 문의했으나 아직 답변을 받지 못했습니다. 만약 그 시간에 system 계정으로 로그인한 사람이 없었다면, 해당 서버가 해킹당했을 가능성이 높아 보입니다.

이 경우, 이메일 인증을 우회하여 데이터베이스를 통해 사용자 계정을 생성할 수 있을까요? 데이터베이스 로그에서 그들의 활동 내역을 확인할 수 있을까요?

사용자가 프로필에서 삭제 버튼을 누를 때 로그에 이렇게 표시되는 것 같습니다.

사용자가 프로필에서 계정을 삭제하면 로그의 사용자 필드에 system이 표시되나요? 사용자 필드에는 'Test’가 표시되어야 하는 것 아닌가요? 여기 뭔가 이상한 점이 있습니다.