Extension:SpamBlacklist

This page is a translated version of the page Extension:SpamBlacklist and the translation is 100% complete.
Other languages:
Bahasa Indonesia • ‎English • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎中文 • ‎日本語
Bu uzantı MediaWiki 1.21 ve üstü ile gelir. Böylece tekrar indirmek zorunda değilsiniz. Ancak, verilen diğer talimatları izlemeniz gerekir.
MediaWiki manüel uzantıları
OOjs UI icon advanced.svg
SpamBlacklist
Sürüm durumu: kararlı
SpamBlacklist.gif
Uygulama Sayfa işlemi
Açıklama Düzenli ifade tabanlı bir spam filtresi sağlar
Yazar(lar) Tim Starlingtalk
En son sürüm Güncellemeler devam etmekte
Uyumluluk politikası sürüm dalları
MediaWiki 1.31+
Lisans GNU Genel Kamu Lisansı 2.0 veya üstü
İndir
README
  • $wgBlacklistSettings
  • $wgLogSpamBlacklistHits
  • spamblacklistlog
Translatewiki.net adresinde mevcutsa, SpamBlacklist uzantısını çevirin
Kullanım ve sürüm matrisini kontrol edin.
Sorunlar Açık görevler · Hata bildir

SpamBlacklist uzantısı, alanları belirtilen dosyalarda veya viki sayfalarında tanımlanan normal ifade kalıplarıyla eşleşen URL'leri içeren düzenlemeleri ve belirtilen e-posta adreslerini kullanan kullanıcılar tarafından kaydedilmesini önler.

Birisi bir sayfayı kaydetmeye çalıştığında, bu uzantı metni (potansiyel olarak çok büyük) yasadışı ana bilgisayar adları listesiyle karşılaştırır. Bir eşleşme varsa, uzantı kullanıcıya bir hata mesajı görüntüler ve sayfayı kaydetmeyi reddeder.

Kurulum ve yükleme

Kurulum

Engelleme listesini ayarlama

Listelenen ek kaynaklar ne olursa olsun, aşağıdaki yerel sayfalar her zaman kullanılır:

Yasak URL'lerin engelleme listesi için varsayılan ek kaynak Meta Viki'de m:Spam engelleme listesi sayfasındaki Wikimedia spam engelleme listesidir. Varsayılan olarak, uzantı bu listeyi kullanır ve her 10-15 dakikada bir yeniden yükler. Birçok viki için, bu listeyi kullanmak çoğu spam girişimini engellemek için yeterli olacaktır. Ancak, Wikimedia engel listesi, yüz binlerce dış bağlantıya sahip çeşitli büyük vikiler grubu tarafından kullanıldığından, engellediği bağlantılarda nispeten muhafazakar.

The Wikimedia spam block list can only be edited by administrators; but you can suggest modifications to the block list at m:Talk:Spam blacklist.

You can add other bad URLs on your own wiki. List them in the global variable $wgBlacklistSettings in LocalSettings.php . See examples below.

$wgBlacklistSettings is an two level array. Top level key is spam or email. They take an array with each value containing either a URL, a filename or a database location.

If you use $wgBlacklistSettings in "LocalSettings.php", the default value of "[[m:Spam blacklist]]" will no longer be used - if you want that block list to be accessed, you will have to add it in manually, see examples below.

Specifying a database location allows you to draw the block list from a page on your wiki.

The format of the database location specifier is "DB: [db name] [title]". [db name] should exactly match the value of $wgDBname in LocalSettings.php. You should create the required page name [title] in the default namespace of your wiki. If you do this, it is strongly recommended that you protect the page from general editing. Besides the obvious danger that someone may add a regex that matches everything, please note that an attacker with the ability to input arbitrary regular expressions may be able to generate segfaults in the PCRE library.

Örnekler

If you want to, for instance, use the English-language Wikipedia's spam block list in addition to the standard Meta-Wiki one, you could call the following in LocalSettings.php , AFTER wfLoadExtension( 'SpamBlacklist' ); call:

$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"
		],
	],
];

Here is an example of an entirely local set of block lists: the administrator is using the update script to generate a local file called "wikimedia_blacklist" that holds a copy of the Meta-Wiki blacklist, and has an additional block list on the wiki page "My spam block list":

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

Sorunlar

If you encounter issues with the block list, you may want to increase the backtrack limit. However on the other hand, this can reduce your security against DOS attacks, as the backtrack limit is a performance limit:

// 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' );

Güvenli listesi

İlgili bir güvenli liste MediaWiki:Spam-whitelist sayfası düzenlenerek saklanabilir. Kullandığınız başka bir vikinin engelleme listesindeki belirli girişleri geçersiz kılmak istiyorsanız bu yararlıdır. Wikimedia vikileri, örneğin, bazen spam engelleme listesini spam ile mücadele dışındaki amaçlarla kullanılır.

It is questionable how effective the Wikimedia spam block lists are at keeping spam off of third-party wikis. Some spam might be targeted only at Wikimedia wikis, or only at third-party wikis, which would make Wikimedia's blacklist of little help to said third-party wikis in those cases. Also, some third-party wikis might prefer that users be allowed to cite sources that are not considered reliable on Wikipedia, or that Wikipedia has considered so ideologically offensive as to warrant blocking. Sometimes what one wiki considers useless spam, another wiki might consider useful.

Users may not always realize that, when a link is rejected as spammy, it does not necessarily mean that the individual wiki they are editing has specifically chosen to ban that URL. Therefore, wiki system administrators may want to edit the system messages at MediaWiki:Spamprotectiontext and/or MediaWiki:Spamprotectionmatch on your wiki to invite users to make suggestions at MediaWiki talk:Spam-whitelist for pages that should be added by a sysop to the safe list. For example, you could put, for MediaWiki:Spamprotectiontext:

The text you wanted to save was blocked by the spam filter. This is probably caused by a link to a blacklisted external site. {{SITENAME}} maintains [[MediaWiki:Spam-blacklist|its own block list]]; however, most blocking is done by means of [[metawikimedia:Spam-blacklist|Meta-Wiki's block list]], so this block should not necessarily be construed as an indication that {{SITENAME}} made a decision to block this particular text (or URL). If you would like this text (or URL) to be added to [[MediaWiki:Spam-whitelist|the local spam safe list]], so that {{SITENAME}} users will not be blocked from adding it to pages, please make a request at [[MediaWiki talk:Spam-whitelist]]. A [[Project:Sysops|sysop]] will then respond on that page with a decision as to whether it should be listed as safe.

Notlar

  • Bu uzantı yalnızca viki editörleri tarafından eklenen yeni harici bağlantıları inceler. Kullanıcı aracılarını kontrol etmek için Bad Behaviour veya Akismet ekleyin. MediaWiki'deki spam ile mücadele için çeşitli araçlar kötüye kullanımı tespit etmek için farklı yöntemler kullandığından, güvenlik önlemleri birlikte en iyi şekilde kullanılır.
  • Extension:SpamBlacklist/update script, paylaşılan engel listelerinden güncellemeleri otomatikleştirebilen bir cron betiğidir. Memcached kullanıyorsanız, spam_blacklist_regexes anahtarını da silmeniz gerekir (örneğin, maintenance/mcc.php kullanarak).
  • Bazı kullanıcıların spam engelleme listesini geçersiz kılmasına izin vermenin bir yolu yoktur. bugzilla:34928 sayfasına bakın.

Kullanım

Engelleme listesi sözdizimi

Kendinize ait bir engel listesi oluşturmak veya mevcut bir listeyi değiştirmek istiyorsanız, sözdizimi şöyledir:

'#' karakterinden sonra satırdaki her şey yok sayılır (yorumlar için). Diğer tüm dizeler, yalnızca URL'lerle eşleşen düzenli ifade parçalarıdır.

Notlar
  • "http://" eklemeyin; Normal ifade URL'lerin içindeki "http://" (veya "https://") sonrasında ile eşleşeceğinden bu başarısız olur.
    • Düzenli ifade herhangi bir alt alan adıyla eşleşeceğinden, "www" gerekmez. "www\." vererek, açık bir şekilde belirli alt alanlarla eşleşebilir.
  • (?<=//|\.) ve $ çengelleri, URL'nin başlangıcı ve bitişiyle değil, alan adının başlangıcı ve bitişiyle eşleşir. Normal çengel ^ herhangi bir işe yaramaz.
  • Eğik çizgiler ters eğik çizgilerden kaçmak zorunda değildir, bu betik tarafından otomatik olarak yapılacaktır.
Örnek

The following line will block all URLs that contain the string "example.com", except where it is immediately preceded or followed by a letter or a number.

\bexample\.com\b

These are blocked:

  • http://www.example.com
  • http://www.this-example.com
  • http://www.google.de/search?q=example.com

These are not blocked:

  • http://www.goodexample.com
  • http://www.google.de/search?q=example.commodity

Performans

Uzantı /https?:\/\/[a-z0-9\-.]*(line 1|line 2|line 3|....)/Si gibi görünen tek bir düzenli ifadesi oluşturur (hatlardaki tüm eğik çizgiler otomatik olarak kaçar). Tüm kodları her sayfa görünümünde yüklemekten kaçınmak için bunu küçük bir "loader" dosyasına kaydeder. Bayt kodu önbellek kullanmasanız bile sayfa görüntüleme performansı etkilenmeyecektir, ancak herhangi bir MediaWiki yüklemesi için önbellek kullanılması önemle tavsiye edilir.

Düzenli ifade eşleşmesinin kendisi genellikle sayfa tasarruflarına önemsiz bir ek yük ekler (deneyimimizde 100 ms civarında). Ancak, spam dosyasını diskten veya veritabanından yüklemek ve normal ifadeyi oluşturmak, donanımınıza bağlı olarak önemli miktarda zaman alabilir. Bu uzantıyı etkinleştirmenin yavaşladığını fark ederseniz, desteklenen bir bayt kodu önbelleği yüklemeyi deneyin. Böyle bir sistem varsa, bu uzantı yapılandırılmış normal ifadeyi önbelleğe alır.

If you're sharing a server and cache with several wikis, you may improve your cache performance by modifying getSharedBlacklists and clearCache in SpamBlacklist_body.php to use $wgSharedUploadDBname (or a specific DB if you do not have a shared upload DB) rather than $wgDBname. Be sure to get all references! The regexes from the separate MediaWiki:Spam-blacklist and MediaWiki:Spam-whitelist pages on each wiki will still be applied.

Harici engel listesi sunucuları (RBL'ler)

In its standard form, this extension requires that the block list be constructed manually. While regular expression wildcards are permitted, and a block list originated on one wiki may be re-used by many others, there is still some effort required to add new patterns in response to spam or remove patterns which generate false-positives.

Much of this effort may be reduced by supplementing the spam regex with lists of known domains advertised in spam email. The regex will catch common patterns (like "casino-" or "-viagra") while the external block list server will automatically update with names of specific sites being promoted through spam.

In the filter() function in SpamBlacklist_body.php, approximately halfway between the file start and end, are the lines:

       # Do the match
       wfDebugLog( 'SpamBlacklist', "Checking text against " . count( $blacklists ) .
           " regexes: " . implode( ', ', $blacklists ) . "\n" );

Directly above this section (which does the actual regex test on the extracted links), one could add additional code to check the external RBL servers:

        # Do RBL checks
        $retVal = false;
        $wgAreBelongToUs = ['l1.apews.org.', 'multi.surbl.org.', 'multi.uribl.com.'];
        foreach( $addedLinks as $link ) {
              $link_url=parse_url($link);
              $link_url=$link_url['host'];
              if ($link_url) {
                   foreach( $wgAreBelongToUs as $base ) {
                        $host = "$link_url.$base";
                        $ipList = gethostbynamel( $host );
                        if( $ipList ) {
                           wfDebug( "RBL match: Hostname $host is {$ipList[0]}, it's spam says $base!\n" );
                           $ip = wfGetIP();
                           wfDebugLog( 'SpamBlacklistHit', "$ip caught submitting spam: {$link_url} per RBL {$base}\n" );
                           $retVal = $link_url . ' (blacklisted by ' . $base .')';
                           wfProfileOut( $fname );
                           return $retVal;
                        }
                   }
              }
        }

        # if no match found on RBL server, continue normally with regex tests...

This ensures that, if an edit contains URLs from already blocked spam domains, an error is returned to the user indicating which link cannot be saved due to its appearance on an external spam block list. If nothing is found, the remaining regex tests are allowed to run normally, so that any manually-specified 'suspicious pattern' in the URL may be identified and blocked.

Note that the RBL servers list just the base domain names - not the full URL path - so http://example.com/casino-viagra-lottery.html will trigger RBL only if "example.com" itself were blocked by name by the external server. The regex, however, would be able to block on any of the text in the URL and path, from "example" to "lottery" and everything in between. Both approaches carry some risk of false-positives - the regex because of the use of wildcard expressions, and the external RBL as these servers are often created for other purposes - such as control of abusive spam email - and may include domains which are not engaged in forum, wiki, blog or guestbook comment spam per se.

Diğer spam ile mücadele araçları

Mediawiki.org'da spam ve diğer vandalizmlerle mücadele konusunda çeşitli yararlı kılavuzlar vardır:

Diğer anti-spam, anti-vandalizm uzantıları şunları içerir:

Ayrıca bakınız