검토 대기열에서 일시 정지

검토 대기열에서 사용자를 무음 처리/정지할 수 있는 기능을 추가할 수 있을까요?

우리의 커뮤니티가 우호적인 링크 정책(즉, no-follow가 아닌 정책)을 가지고 있다는 이유로 여러 SEO 포럼에 언급되어 왔기 때문에, 해당 사이트들로부터 상당한 양의 스팸 트래픽을 받고 있습니다. 물론 해당 개념이 등장한 이후로 거의 no-follow 정책을 적용해 왔지만요. 스팸 트래픽은 물결처럼 찾아오는데, 일부는 자동으로 스팸을 뿌리고, 일부는 상당한 시간을 기다렸다가 접근하며, 일부는 호출/응답 방식의 스팸을 진행합니다. 심지어 일부는 팀을 이루어 오는 경우도 있는데, 아마도 우리가 몇 명을 놓치면 그들에게 존재하지도 않는 소량의 링크 주스(link juice)가 전달되기를 바라는 것 같습니다.

다양한 유형의 스팸 활동으로 인해, 우리는 문서화와 추적을 충분히 갖추는 것이 더 이롭다고 판단했습니다. 이는 SSO(Single Sign-On) 때문에 삭제/차단(이것이 우리가 사용해야 할 조치)을 수행할 때 필요한 사항입니다. 그러나 문서화가 부족하여(작은 정보 팝업은 있지만 로그 기록 자체에는 표시되는 내용이 없음) 스팸 유저를 주시하기가 더 어려워졌고, 실수로 스팸 유저로 지정된 사람들을 처리하는 것도 힘들어졌습니다(우리는 결국 사람이니까요). 그래서 결국 수동으로 사용자를 정지하고, 게시물을 승인한 뒤 삭제하는 방식으로 대응하고 있습니다.

플래그 스팸 처리 과정에서 나타나는 “조치 취하기” 버튼을 사용할 수 있다면, 스팸 대응 과정에서 일관된 행동이 가능해질 뿐만 아니라, 문제 있는 사용자의 패턴을 파악하는 데 가장 높은 가시성을 확보할 수 있을 것입니다.

6개의 좋아요

저는 보통 이런 “업” (bump)을 하는 사람 중 하나가 되고 싶지 않지만, 이 문제를 다시 한번 검토해 주셨으면 해서 글을 올립니다.

스팸이 정말 많이 들어옵니다… 정말로요. 시간당 15~20개의 스팸 메시지가 쏟아지는 날도 있습니다. 그래서 우리는 사용자 삭제 방법을 사용할 수밖에 없었습니다. 그렇지 않으면 승인, 게시글 이동, 신고, 조치 수행(직접 조치가 가능한 경우) 또는 대기열로 이동 후 조치 수행이라는 4~5단계 과정을 거쳐야 하기 때문입니다. 이 모든 과정 동안 커뮤니티 멤버가 “승인된” 게시글을 신고하지 않기를 바랄 수밖에 없습니다. 그렇게 되면 우리 업무가 더 늘어나기 때문입니다.

하지만 이제 직원이 인간이라는 현실적인 문제에 부딪히고 있습니다. 가끔은 게시글이 의심스러워 보였지만 실제로는 정당한 사용자로, 그 사용자가 삭제되는 일이 발생합니다.

그런데 사용자 복구(undelete) 기능이 없습니다. 적어도 제가 찾을 수 있는 범위에서는요. 또한 로그를 통해 삭제된 사용자를 확인하는 깔끔한 방법도 없습니다. 로그를 확인하려면 삭제된 사용자 각각의 정보 팝업을 확인하거나, 로그를 내보낸 후 해당 사용자를 찾아야 합니다.

결국 우리는 "어떤 악마와 함께 살 것인가"라는 딜레마에 직면해 있습니다. 조정(moderation) 시간을 두 배 또는 세 배로 늘리거나, 지원 팀이 경계선에 너무 가까운 게시글을 작성해 우연히 삭제된 정당한 고객들을 처리해야 하는 부담을 지우는 것 중 하나를 선택해야 합니다.

참고: 검토 대기열에 게시글 거부(reject post) 기능이 있다는 것은 알고 있습니다. 하지만 이 기능은 사용자 자체를 처리하지 않기 때문에 양날의 검입니다. 사용자는 다시 돌아올 수 있고, 대기열에는 이전에 게시글이 거부된 적이 있는 사람이라는 표시가 없기 때문입니다…

리뷰 대기열로 들어오는 스팸 중 가장 큰 비중을 차지하는 방법은 무엇인가요?

Akismet에 의해 플래그가 지정된 경우, ‘예’ 드롭다운 메뉴에 ‘일시 정지’ 옵션이 있는 것 같습니다:

커뮤니티 플래그가 지정된 경우에도 해당 옵션이 있는 것 같습니다:

혹시 우리가 놓친 다른 옵션이 있을까요?

저희 쪽에서는 대부분이 "새 사용자의 첫 게시물이 의심할 정도로 빠르게 입력되어, 봇이나 스팸머로 추정됨"이라는 유형입니다.
image

해당 게시물에는 게시 승인, 게시 삭제, 사용자 삭제 기능이 있습니다. 다른 두 대기열과 동일하게 사용자 정지 옵션이 있는 기능을 제공해 주셨으면 합니다. 게시 거부 메뉴에 드롭다운 형태로 추가할 수 있을 것입니다.

2개의 좋아요

아, 그렇군요. 해당 항목은 대기 중인 게시물/토픽으로 분류되므로 플래그 버튼 대신 ‘승인’ 버튼을 상속받습니다:

해당 설정은 잠재적인 봇과 스팸을 걸러내기 위해 특별히 존재하는 것이므로, 일관성을 위해 Akismet 옵션과 동일하거나 유사한 옵션을 제공하는 것이 좋다고 생각합니다.

개인적으로는 스팸을 '삭제’하는 편을 지지합니다 :slight_smile: 하지만 대신 계정을 정지하는 방식을 선호하는 사이트도 몇 곳 알고 있습니다. 다른 항목들에 해당 옵션이 있다면, 이 항목에도 포함되는 것이 적절하다고 생각합니다(가능하다면).

4개의 좋아요

문제를 보여주는 스크린샷 예시입니다:

코드를 빠르게 살펴봤습니다. 해당 사용자 작업은 ReviewableQueuedPost 클래스 메서드에서 여기 근처에 추가되는 것으로 보입니다. 이 클래스는 delete_user_actions()를 제공하는 Reviewable을 상속받습니다.

레이블은 여기에서 가져오며, ReviewablePost 클래스(이것도 Reviewable을 상속)에서 사용 중인 reject_and_suspend에 대한 레이블이 이미 존재합니다.

저는 레일스(Rails)에 대해 잘 알지 못하지만, "게시물 승인"과 “사용자 삭제” 사이에 “사용자 거부 및 정지” 권한을 해당 페이지에 추가하는 데는 큰 노력이 필요하지 않을 것 같습니다.

이 옵션이 있으면 가끔씩 사용자가 나쁜 하루를 보내는 상황을 방지하는 데 도움이 될 것입니다.

2개의 좋아요

공정하게 말하자면 (이것은 볼트로닉(Boltronic)과 공유할 생각을 하지 못했던 부분이지만) 우리는 의도적으로 게시물 거부 버튼을 숨겼습니다. 이 버튼은 단순히 게시물을 삭제할 뿐이며, 그에 따른 로깅 기능이 없기 때문입니다 — 버튼을 숨겼을 당시에는 그랬습니다 (적어도 로깅 기능이 있다면 다시 표시해 드릴 기꺼이 하겠습니다).

하지만 사용자 삭제 버튼에 유사한 접근 방식을 적용하여, 게시물 거부와 게시물 거부/사용자 정지 옵션을 추가한다면 그것도 잘 작동할 것이며, 버튼 간 동작 일관성이 유지될 것입니다.

"사용자가 너무 빨리 입력함"과 같은 항목은 이제 검토 대기열(Review Queue) 기록에 저장되는 것 같습니다. :+1:

1개의 좋아요

늦어도 안 늦은 것만 못하죠? :sweat_smile:

3개의 좋아요