외부 도메인 링크 차단 목록

특정 도메인이 아예 링크로 연결되지 않도록 막을 방법이 있을까요?

상황은 다음과 같습니다. 한 사용자가 어떤 주제에든 답글을 달 때 항상 자신의 웹사이트 링크를 붙이고 있습니다. 이것 자체가 나쁘거나 위험한 것은 아니지만, 그 결과로 모든 대화가 납치당하고 스팸처럼 느껴집니다. 해당 사용자에게 여러 차례 요청을 했음에도 불구하고 이러한 게시 패턴은 계속되고 있습니다. 참고로 rel="nofollow"는 이러한 행동을 막지 못하는 것으로 보입니다.

링크를 아예 제거하거나, 해당 도메인이 나타나는 경우 게시를 차단하는 것이 외부 링크를 계속 뿌리는 대신 대화 자체에 기여하도록 동기를 부여할 수 있을 것 같습니다.

이 문제를 해결하기 위한 다른 비기술적 방법이 있을 수도 있지만, 이는 포럼 전반에서 반복적으로 발생할 수 있는 잠재적 문제로 보입니다.

1개의 좋아요

빠른 해결책은 사용자가 링크를 전혀 게시할 수 없도록 사용자 권한을 낮추는 것입니다.

2개의 좋아요

링크 자체를 /admin/customize/watched_words/action/block 목록에 추가할 수 있습니다.

8개의 좋아요

@Firepup650님의 감시 단어(watched words) 제안은 다양한 사람들이 소수의 스팸 사이트 링크를 게시할 때 유용합니다. 확실히 유용한 도구입니다. 이 경우 사회적 수용 범위를 넘어서는 행동을 하는 사용자가 있는 것으로 보입니다. 자기 홍보 정책도 고려해 보시는 것이 좋습니다. 이는 차단이라는 다소 강경한 조치를 도입하지 않고도 문제를 해결할 수 있을 것입니다.

차단 목록(blocklists)의 필연적인 문제는 지속되는 위반자들이 이를 우회하는 방법을 찾게 된다는 것입니다. 잘 형성된 정책은 사용자를 더 생산적인 활동으로 이끄는 커뮤니티 규범을 만들 수 있습니다. 그리고 그렇지 않다면, 차단이 여전히 잠재적인 해결책으로 남아 있습니다. :wink:

2개의 좋아요

실제로는 감시 단어 목록에 해당 도메인을 차단하거나, 조금 재미있는 장난을 쳐도 됩니다. URL을 “Oops NoGo” 같은 것으로 대체하도록 설정해 보세요.

짧은 도메인 이름에 대해서도 같은 질문이 있었습니다. 예를 들어 "ent.com"을 차단하려면 "content.com"까지 차단되지 않도록 주의해야 합니다.

ent.com을 감시 대상 단어로 설정해도 content.com에서는 트리거되지 않습니다. 아니면 제가 잘못 이해하고 있는 건가요?
또한 게시되고 싶지 않은 URL의 감시 대상 단어를 세밀하게 조정하기 위해 정규 표현식을 사용할 수도 있습니다.

2개의 좋아요

감사합니다. 그렇다면 "ent.com"을 입력하면 "http(s)://ent.com/[url]?"의 모든 변형(여기서 url은 임의의 문자열)을 차단할까요?

알겠습니다. 정규식을 사용해야 할 것 같습니다.

2개의 좋아요

답변 주셔서 감사합니다. 제가 다양한 방법으로 감시 단어를 시도해본 기억이 있지만, 제 생각에는 링크가 해제되지 않는 것 같습니다. 작동하는 예시를 제공해 주실 수 있는 분 있으신가요?

1개의 좋아요

매우 기본적인 테마 컴포넌트입니다(로봇의 도움으로 제작): 하드코딩된 도메인 목록을 사용합니다:

<script type="text/discourse-plugin" version="0.8.25">
  api.decorateCookedElement((element) => {

    const domainsToUnlink = ["example.com", "specificdomain.com"];

    const links = element.querySelectorAll("a");

    links.forEach((link) => {
      const url = new URL(link.href);
      if (domainsToUnlink.includes(url.hostname)) {
        const textNode = document.createTextNode(link.textContent);
        link.replaceWith(textNode);
      }
    });
  }, { id: "unlink-specific-domains" });
</script>

2개의 좋아요

제 머릿속으로 정리해 보려고요.

이 스크립트는 지정된 링크를 클릭할 수 없는 일반 텍스트 버전의 링크로 변환하나요?

링크를 "금지"라는 텍스트로 대체하고, 허용되지 않는 도메인 목록이 포함된 규칙 게시글로 연결되도록 수정할 수도 있을까요?

1개의 좋아요

두 질문에 모두 그렇습니다 :slight_smile:

1개의 좋아요