본문 바로가기
미디어위키

Extension SpamBlacklist

by 다움위키 2023. 12. 29.

SpamBlacklist 확장은 도메인이 지정된 파일이나 위키 페이지에 정의된 정규식 패턴과 일치하고 지정된 전자 메일 주소를 사용하는 사용자가 등록한 URL을 포함하는 편집을 금지합니다.

누군가가 페이지를 저장하려고 시도했을 때, SpamBlacklist는 불법 호스트 이름의 (잠재적으로 매우 큰) 목록이 있는지 텍스트를 검사합니다. 만약 일치하는 항목이 있는 경우에는, 확장 프로그램은 사용자에게 오류 메시지를 표시하고 페이지 저장을 거부합니다.

Installation

미디어위키 1.21부터는 미디어위키와 함께 배포가 되고 있습니다. 별도로 설치할 필요가 없습니다.

미디어위키 확장 내려받기 지면에서 해당 판을 내려받아서 정해진 위치로 이동시킵니다.

미디어위키 설정 LocalSettings.php 파일에 다음을 추가합니다:

wfLoadExtension( 'SpamBlacklist' );

Special:Version에 접근해서 확장이 정상적으로 설치가 되었는지 확인을 합니다.

Setting the blacklist

설사 추가적인 소스가 목록화되더라도, 로컬 페이지 MediaWiki:Spam-blacklist, MediaWiki:Spam-whitelist, MediaWiki:Email-blacklist 그리고 MediaWiki:Email-whitelist가 항상 사용됩니다.

SpamBlacklists의 금지된 URL 목록의 기본 추가 소스는 Meta-Wiki의 위키 미디어 스팸 블랙리스트 Spam blacklist입니다. 기본적으로, 확장 프로그램은 이 목록을 사용하고, 그리고 10-15분마다 한 번씩 다시 로드합니다. 많은 위키에서, 이 목록을 사용하면 대부분의 스팸 시도를 차단할 수 있습니다. 어쨌든, 위키미디어 블랙리스트는 수십만 개의 외부 링크가 있는 다양한 위키의 그룹에 의해 사용되기 때문에, 그것이 차단하는 링크들 내에서 비교적 보수적입니다.

위키미디어 스팸 블랙리스트는 관리자만 편집할 수 있습니다; Talk:Spam blacklist에서 블랙리스트에 대한 수정을 제안할 수 있습니다.

자신의 위키에 다른 나쁜 URL을 추가할 수 있습니다. LocalSettings.php에 이 확장을 활성화한 줄 다음에, 전역 변수 $wgSpamBlacklistFiles에 나열하십시오; 아래 예제를 참조하십시오.

$wgSpamBlacklistFiles는 배열이며, 각 값은 URL, 파일 이름 또는 데이터베이스 위치 둘 중에 하나를 포함합니다.

만약 LocalSettings.php에서 $wgSpamBlacklistFiles를 사용하면 "[[metawikimedia:Spam blacklist]]"의 기본값은 더 이상 사용되지 않습니다 - 만약 블랙리스트에 접근하려면, 수동으로 추가해야만 합니다, 아래의 예제를 참조하십시오.

데이터베이스 위치를 지정하면 위키 페이지의 블랙리스트를 그릴 수 있습니다.

데이터베이스 위치 지정자의 형식은 "DB : [db name] [title]"입니다. [db name]은 LocalSettings.php의 $wgDBname 값과 정확하게 일치해야만 합니다. 위키의 기본 이름 공간에 필요한 페이지 이름 [title]을 만들어야만 합니다. 만약 이렇게 하면, 일반 편집에서 페이지를 보호하는 것을 강력히 추천합니다. 더구나, 모든 사람이 모든 것과 일치하는 정규식을 추가할 수 있다는 명백한 위험 이외에도 임의의 정규 표현식을 입력할 수 있는 공격자가 PCRE library에서 segfaults를 생성할 수 있습니다.

Examples

예를 들어, 영문 Wikipedia 블랙리스트와 더불어 표준 Meta-Wiki 블랙리스트를 사용하고자 한다면, 해당 확장을 호출한 후에, LocalSettings.php에 다음을 추가할 수 있습니다:

$wgSpamBlacklistFiles = array(
   "[[metawikimedia:Spam blacklist]]",
   "https://en.wikipedia.org/wiki/MediaWiki:Spam-blacklist"
);

...또는 다음과 같은 추가할 수 있습니다.:

$wgBlacklistSettings = [
    'spam' => [
        'files' => [
            "https://meta.wikimedia.org/w/index.php?title=Spam_blacklist&action=raw&sb_ver=1",
            "https://en.wikipedia.org/w/index.php?title=MediaWiki:Spam-blacklist&action=raw&sb_ver=1"
        ],
    ],
];

다음은 완전히 로컬로 설정된 블랙리스트의 예제입니다. 관리자는 업데이트 스크립트를 사용하여 Meta-Wiki 블랙리스트 목록을 "wikimedia_blacklist"라는 로컬 파일을 생성하고, 그리고 위키 페이지 "My spam blacklist"에 추가 블랙리스트를 더할 수 있습니다:

require_once "$IP/extensions/SpamBlacklist/SpamBlacklist.php";
$wgBlacklistSettings = [
    'spam' => [
        'files' => [
            "$IP/extensions/SpamBlacklist/wikimedia_blacklist", // Wikimedia's list
               //  database      title
            "DB: wikidb My_spam_blacklist",    
        ],
    ],
];

Issues

만약 블랙리스트에 문제가 있는 경우에는, 백-트랙 제한을 늘릴 수 있습니다. 그러나 다른 한편으로, 이것은 역-추적 제한이 성능 제한이기 때문에, DOS 공격에 대한 보안을 줄일 수 있습니다:

// Bump the Perl Compatible Regular Expressions backtrack memory limit                                                                                  
// (PHP 5.3.x default, 1000K, is too low for SpamBlacklist)                                                                                              
ini_set( 'pcre.backtrack_limit', '8M' );

Whitelist

해당 화이트리스트는 MediaWiki:Spam-whitelist 페이지를 편집하여 유지-관리할 수 있습니다. 이 기능은 사용 중인 다른 위키의 블랙리스트에서 특정 항목을 덮어쓰려는 경우에 유용합니다. 예를 들어, 위키 미디어 위키는 때때로 스팸 차단과 다른 목적으로 스팸 블랙리스트를 사용합니다.

Wikimedia 스팸 블랙리스트가 제 3자 위키에서 스팸을 차단하는 것에 얼마나 효과적인지 의심 스럽습니다. 일부 스팸은 mw:Wikimedia wikis 또는 제 3자 위키에서만 타겟팅될 수 있으며, 이러한 경우에 Wikimedia의 블랙리스트가 제 3자 위키에 거의 도움이 되지 않습니다. 또한, 일부 제 3자 위키는 사용자가 위키피디아에서 신뢰할 수 없다고 여겨지는 소스를 인용하도록 허용하거나, 또는 위키피디아가 블랙리스트를 허용할 정도로 이데올로기적으로 불쾌하다고 생각하는 것을 선호할 수 있습니다. 때때로 한 위키가 쓸데없는 스팸을 고려하는 경우, 다른 위키는 유용하다고 생각할 수 있습니다.

사용자는, 링크가 스팸으로 거부되었을 때, 편집 중인 개별 위키가 해당 URL을 금지하도록 특별히 선택했다는 사실을 인식하지 못할 수도 있습니다. 따라서 위키 시스템 관리자는 위키의 MediaWiki:Spamprotectiontext 및/또는 MediaWiki:Spamprotectionmatch에서 시스템 메시지를 편집하여 mw:sysop에서 다음으로 추가해야 하는 페이지에 대한 mw:MediaWiki talk:Spam-whitelist에서 제안하도록 사용자를 초대할 수 있습니다. 예를 들어, MediaWiki:Spamprotectiontext에 다음을 넣을 수 있습니다:

저장하려는 텍스트가 스팸 필터에 의해 차단되었습니다. 이것은 아마도 블랙리스트에 올라있는 외부 사이트에 대한 링크 때문일 것입니다. {{SITENAME}}은 [[MediaWiki:Spam-blacklist|its own blacklist]]를 유지합니다; 그러나, 대부분의 블랙리스트는 [[metawikipedia:Spam-blacklist|Meta-Wiki's blacklist]]를 통해 이루어지므로, 그래서 이 블록은 반드시 {{SITENAME}}이 특정 텍스트(또는 URL)를 차단하겠다는 결정을 내린 것으로 해석되어서는 안됩니다. 만약 이 텍스트(또는 URL)가 [[MediaWiki:Spam-whitelist|the local spam whitelist]]에 추가되어, 그래서 {{SITENAME}} 사용자가 페이지에 추가하지 못하도록 차단하려면, [[MediaWiki talk:Spam-whitelist]]에서 요청하십시오. 그런 다음 [[Project:Sysops|sysop]]은 해당 페이지에서 허용 목록에 넣을지 말지 여부를 결정할 것입니다.

Notes

  • 이 확장은 위키 편집자가 추가한 새로운 외부 링크만 검사합니다. 사용자 에이전트를 확인하기 위해서는, Bad Behaviour 또는 Akismet을 추가하고, 그리고 알려진 스팸봇 목록에 대한 편집자의 IP 주소를 확인하기 위해서는, Check Spambots과 함께 이를 보완하십시오. MediaWiki에서 combating spam를 위한 다양한 도구는 여러 가지 방법을 사용하여 악용을 찾아내기 때문에, 안전 장치를 함께 사용하는 것이 가장 좋습니다.
  • mw:Extension:SpamBlacklist/update script는 공유 블랙리스트에서 업데이트를 자동화할 수 있는 cron 스크립트입니다. 만약 memcached를 사용하는 경우에는, spam_blacklist_regexes 키를 삭제해야 합니다(예를 들어, maintenance/mcc.php를 사용하세요).
  • 일부 사용자가 스팸 블랙리스트를 무시하도록 할 수는 없습니다. mw:bugzilla:34928을 참조하십시오.

See also

  • Compatible blacklists (this is just a tiny sampling; there are many more)