otwarty
Zamknąć

Jak chronić forum Simple Machines (SMF) przed spamem. Automatyczne wykrywanie silnika forum Profil Uważny obsługiwany przez smf

Zacznijmy od razu od głównego kodu skryptu:

#!/usr/bin/perl

# skrypt Which-forum.pl
# (c) 2010 Alexandr A Alexeev, http://site/

użyj ścisłego;

# skomentowane linie - dla rygorystyczności
# jeśli zadaniem jest zbieranie statystyk silnika, zostaw to tak, jak jest
# jeśli tworzysz listę forów - odkomentuj

moje $dane;
$data .= $_while (<> ) ;

# sprawdź ile kosztowało Powered by phpBB bez linku w stopce
wydrukuj „phpbb \N"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?phpbb\.com\/?"[^>]*>phpBB/i Lub
# $data =~ /viewforum\.php\?[^""]*f=\d+/i lub
$data =~ /phpBB\-SEO/i lub
$dane =~ /) ;
wydrukuj „ipb \N"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?invision(?:board|power)\.com\/?[^"]*"[^>]*> [^<]*IP\.Board/i Lub
$dane =~ /]+href="[^"]*http:\/\/(?:www\.)?invisionboard\.com\/?"[^>]*>Invision Power Board/i Lub
$dane =~ /

/I Lub
$dane =~ /index\.php\?[^""]*showforum=\d+/i) ;
wydrukuj „vbiuletyn \N"
jeśli ($dane =~ /Powered by:?[^<]+vBulletin[^<]+(?:Version)?/i Lub
$dane =~ /) ;
wydrukuj „smf \N"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?simplemachines\.org\/?"[^>]*>Obsługiwane przez SMF/i Lub
$dane =~ /index\.php\?[^""]*board=\d+\.0/i) ;
wydrukuj „punbb \N"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:(?:www\.)?punbb\.org|punbb\.informer\.com)\/?"[^>]*> PunBB/i) ; #Lub
# $data =~ /viewforum\.php\?[^""]*id=\d+/i);
wydrukuj „fluxbb \N"
# if($data =~ /viewtopic\.php\?id=\d+/i lub
jeśli ( $dane =~ /]+href="http:\/\/(?:www\.)fluxbb\.org\/?"[^>]*>FluxBB/i) ;
wydrukuj „exbb \N"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?exbb\.org\/?"[^>]*>ExBB/i) ; # Lub
# $data =~ /forums\.php\?[^""]*forum=\d+/i);
wydrukuj „yabb \N"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?yabbforum\.com\/?"[^>]*>YaBB/i Lub
$data =~ /YaBB\.pl\?[^""]*num=\d+/i ) ;
wydrukuj „dleforum \N"
jeśli ($dane =~ /\(Obsługiwane przez forum DLE\)<\/title>/I Lub
$dane =~ /]+href="[^"]+(?:http:\/\/(?:www\.)?dle\-files\.ru|act=copyright)[^"]*">Forum DLE<\/a>/I) ;
wydrukuj „ikonboard \N"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?ikonboard\.com\/?[^"]*"[^>]*>Ikonboard/i Lub
$dane =~ /
jeśli ($dane =~ /
# if($data =~ /forums\.php\?fid=\d+/i lub
# $data =~ /topic\.php\?fid=\d+/i lub
jeśli ($dane =~ /]+href="http:\/\/(?:www\.)?flashbb\.net\/?"[^>]*>FlashBB/i) ;
wydrukuj „stokesit \N"
# if($data =~ /forum\.php\?f=\d+/i lub
jeśli ($dane =~ /]+href="http:\/\/(?:www\.)?stokesit\.com\.au\/?"[^>]*>[^\/]*Stokes IT/i) ;
wydrukuj „podium \N"
# if($data =~ /topic\.php\?t=\d+/i lub
jeśli ($dane =~ /]+href=[""]?http:\/\/(?:www\.)?sopebox\.com\/?[""]?[^>]*>Podium/i) ;
wydrukuj „usebb \N"
# if($data =~ /forum\.php\?id=\d+/i lub
jeśli ($dane =~ /]+href="http:\/\/(?:www\.)?usebb\.net\/?"[^>]*>UseBB/i) ;
wydrukuj „wrforum \N"
# if($data =~ /index\.php\?fid=\d+/i lub
jeśli ($dane =~ /]+href="http:\/\/(?:www\.)?wr\-script\.ru\/?"[^>]*>WR\-Forum/i) ;
wydrukuj „yetaotherforumnet \N"
if ($data =~ /Jeszcze inne forum\.net/i lub
$dane =~ /default\.aspx\?g=posts&t=\d+/i) ;

Ten i inne skrypty wspomniane w poście znajdziesz w to archiwum.

Scenariusz które-forum.pl sprawdza kod strony HTML, czy zawiera sygnatury silnika forum. Podobną technikę zastosowaliśmy, gdy Definicja WordPressa i Joomli, ale jest kilka różnic. Po pierwsze, sam skrypt nie ładuje kodu strony, ale czyta go ze standardowego wejścia lub pliku przekazanego jako argument. Dzięki temu można raz pobrać stronę, na przykład za pomocą wget, a następnie przepuścić ją przez kilka analizatorów, jeśli mamy więcej niż jeden. Po drugie, w tym skrypcie obecność sygnatury jest w 100% oznaką silnika. Ostatnim razem obecność podpisu tylko dodała wagę odpowiedniemu silnikowi, a silnik o największej masie „wygrał”. Uznałem, że w tym przypadku takie podejście tylko niepotrzebnie skomplikowałoby kod.

Aby przetestować skrypt, przeprowadziłem pewne badania. Stworzyłem listę kilku tysięcy forów i każde z nich przepuściłem w swoim skrypcie, ustalając w ten sposób procent odpowiedzi programu i popularność poszczególnych silników.

Aby uzyskać listę forów, z których korzystałem za pomocą parsera Google. Zapytania takie jak to były wysyłane do wyszukiwarki

strona:forum.*.ru
strona:dyskusja.*.ru
strona:board.*.ru
strona:smf.*.ru
strona:phpbb.*.ru
....

i tak dalej. Pełny kod generatora zapytań znajdziesz w pliku gen-forumsearch-urls.pl. Oprócz Zone.ru używano również .su .ua .kz i .by. Ostatnim razem przeprowadzenie takiego badania było trudne, ponieważ witryny WordPress i Joomla nie mają takich podpisów w adresie URL. Katalogi takie jak cmsmagazine.ru/catalogue/ nie zapewniają wystarczającej wielkości próby. Co to jest 600 witryn Drupal?

Muszę przyznać, że wyniki eksperymentu mnie rozczarowały. Spośród 12 590 zbadanych lokalizacji silnik udało się zidentyfikować jedynie w 7 083, czyli tylko w 56% przypadków. Może nie wziąłem pod uwagę jakiegoś silnika? Czy to prawda, że ​​na połowie forów zainstalowano Bitrix? A może powinienem był poświęcić więcej czasu na szukanie podpisów? Ogólnie rzecz biorąc, wymagane są tutaj dodatkowe badania.

Wśród 56% pomyślnie zidentyfikowanych silników, zgodnie z oczekiwaniami, najpopularniejsze były IPB (31%), phpBB (26,6%) i vBulletin (26,5%)

Za nimi, z dużym opóźnieniem, plasują się SMF (5,8%) i DLEForum (5,3%). Mój ulubiona gra słów BB uplasowało się dopiero na 6. miejscu (1,64%). Nie radzę zbytnio wierzyć tym liczbom (podają, że co trzecie forum w RuNet działa na IPB), ale pewne wnioski można oczywiście wyciągnąć.

Przykładowo, jeśli zamierzasz stworzyć witrynę na silniku forum i planujesz modyfikować forum, powiedzmy raz w tygodniu płacić użytkownikom 0,01 $ za każdą wiadomość z automatycznym pobieraniem środków, to powinieneś wybrać jeden z trzech najpopularniejszych silników. Im popularniejsze forum, tym większa szansa na znalezienie programisty, który jest w nim dobrze zorientowany.

Jeśli w silniku nie przewiduje się znaczących zmian, wówczas sensownym rozwiązaniem może być wybranie mniej popularnego silnika, np. SMF lub punBB. Zmniejszy to liczbę ataków hakerów na Twoje forum i ilość spamu automatycznie wysyłanego na nie.

Skrypty do wyszukiwania/identyfikacji forów również mogą znaleźć wiele praktycznych zastosowań. Pierwszą rzeczą, która przyszła mi do głowy, było to sortuj według TCI zidentyfikowane fora i umieszczaj posty w pierwszej setce z linkami do jednej ze swoich witryn. Jednak setki linków dofollow na forum nie wpłynęło w żaden sposób na TCI (minęły 2 aktualizacje), więc lepiej nie tracić tutaj czasu, chyba że nie interesują Cię przejścia.

Oczywiste jest, że wspomniane użycie skryptów nie jest jedyne. Myślę, że bez problemu domyślisz się, jak jeszcze możesz je wykorzystać.

Gdyby ktoś nie wiedział, Simple Machines Forum - w skrócie SMF - jest, jak podano na oficjalnej stronie, bezpłatnym, profesjonalnym pakietem, który pozwoli Ci zorganizować własną społeczność online w ciągu kilku minut. w tym silniku, możesz zajrzeć tutaj. Sam założyłem na nim własne forum (swoją drogą wejdź na FreeForum.biz).

Nie ma znaczenia, ile spamu pojawia się na Twoim forum. Ważne jest, abyś swój cenny czas poświęcał na umiar. Skonfigurowanie wtyczki, która wykona całą pracę za Ciebie, zajmie kilka minut, a w sumie pozwoli Ci zaoszczędzić dni i miesiące, co zsumuje się do minut, które spędziłbyś na usuwaniu wiadomości i użytkowników.

Zaznaczę, że próbowałem sam walczyć ze spamerami - blokowałem dostęp po IP, a nawet podsieciach. To naprawdę zadziałało, odfiltrowało mnóstwo śmieci, ale mimo to raz na jeden, dwa dni komuś się udało. Uzupełnienie bazy danych zbanowanych adresów IP zajęło sporo czasu. Pomyślałem, że musi być lepszy sposób i rzeczywiście był!

1. Instalacja i konfiguracja Stop Spammer

W ciągu dwóch tygodni działania wtyczka ta zablokowała 2202 fałszywych użytkowników. Każdy z nich zostawiłby przynajmniej jedną wiadomość. Spamerzy nie wykazują oznak spowolnienia, a ja codziennie spędzałem czas na sprzątaniu forum.

Zamiast tego co kilka dni wchodzę na stronę zarządzania użytkownikami i widzę coś takiego:

Przechodzę do sekcji „Oczekiwanie na zatwierdzenie” (są to wykryci spamerzy, którzy pozbawieni są możliwości pozostawiania wiadomości do czasu zatwierdzenia ich kont przez administratora). Zaznaczam checkbox „Wybierz wszystko” i usuwam je jednym kliknięciem:

To wszystko, wszystkie konta spamowe odchodzą w zapomnienie. Wróćmy do naszej listy użytkowników:

Widać, że lista wyraźnie się przerzedziła, ale kim są pozostali? Wybieramy wszystkich i wysyłamy do weryfikacji jednym przyciskiem:

Pojawia się jeden „czerwony”, natychmiast go usuwamy. Jeśli masz wolny czas, możesz zająć się innymi. Jeśli nie masz czasu, nie rób nic z nowymi użytkownikami - większość z nich „zarumieni się” podczas kolejnych kontroli. Jeśli masz czas, możesz wejść na ich profile i sprawdzić - jeśli w podpisie jest link, zostaną natychmiast zbanowani, są to fałszywe konta spamerów, którzy nigdy nie zostawią ani jednej przydatnej wiadomości.

Mówiłem ci, jak korzystać z tej magicznej wtyczki, teraz powiem ci, jak ją zainstalować.

Pobierz dwa pliki: język_full.zip (jest to pakiet językowy do tłumaczenia wtyczki) i StopSpammer_v2_3_9.zip (liczba może się różnić w miarę aktualizacji wersji). Rozpakuj zawartość archiwum StopSpammer_v2_3_9.zip do jakiegoś folderu. Rozpakuj archiwum język_full.zip do tego samego folderu i zgódź się na wymianę plików. Teraz spakuj nasz folder do archiwum zip.

W panelu administracyjnym przejdź do instalacji pakietów. Naprzeciwko napisu „Pobierz pakiet” znajduje się przycisk wyboru pliku na komputerze. Wybierz nasze nowe archiwum (w którym zastąpiliśmy plik językowy), wrzuć na forum i aktywuj pakiet.

Otóż ​​to!

Dodatkowa konfiguracja wtyczki odbywa się w panelu administracyjnym: przejdź do

Użytkownicy → Rejestracja → Ustawienia

Możesz tam pozostawić wartości domyślne. Znajduje się tu także pole „Twój klucz API”. Bez tego klucza nie będziesz mógł zgłaszać nowych spamerów (ale wtyczka będzie działać i filtrować znanych spamerów). Jeśli chcesz otrzymać własny klucz API, wejdź na stronę www.stopforumspam.com i zarejestruj się, a następnie wpisz tutaj klucz. Jeśli nie otrzymałeś jeszcze klucza, pozostaw to pole puste. Następnie zostanie użyty klucz domyślny.

2. Instalacja i konfiguracja łączy antyspamowych

Zwolennicy religii SEO (więcej o moim podejściu do SEO-nistów można przeczytać w innym) mają głębokie przekonanie, że zwiększając liczbę linków do swojej witryny, „promują” ją (z jakiegoś powodu idea ​tworzenie ciekawych i wysokiej jakości treści nie przemawia do nikogo, nie przychodzi mi do głowy). Byłby frajerem, ale istniałyby sposoby na wyciągnięcie od niego pieniędzy. Dlatego niektórzy „obywatele” świadczą usługi „prowadzenia” witryn za pośrednictwem forów. Tworzą dużą liczbę kont na różnych forach i umieszczają tam linki zwrotne w podpisach i innych dostępnych polach. Pomimo tego, że nawet „eksperymentatorzy SEO” udowodnili już eksperymentalnie, że te linki są bezużyteczne, niektórzy ostrzegają, że można za to uzyskać zakaz w wyszukiwarkach, na przykład Yandex po prostu ignoruje linki na WSZYSTKICH forach i witrynach, na których ktokolwiek mogę zostawić linki. Google też ma podobne algorytmy - ignoruje linki w komentarzach itp. Ale prawo nie jest pisane dla frajerów... Dlatego my, właściciele forów, musimy liczyć się z faktem, że „fajni optymalizatorzy SEO” zlecają „uruchamianie ” ich gównianych tworów za tysiąc rubli.

Wtyczka Stop Spammer odfiltruje wiele wiadomości. Ale możemy mu pomóc! Możesz zainteresować się zamieszczaniem linków na swoim forum, chroniąc je przed spamerami. Właśnie do tego służą linki antyspamowe. Ta wtyczka (konkretne liczby można zmienić w ustawieniach) wykonuje następujące czynności:

  • ci, którzy na przykład mają mniej niż pięć wiadomości, nie mogą w ogóle zostawiać linków
  • ci, którzy np. mają mniej niż 15 wiadomości, nie mogą pozostawić aktywnych linków, z linków usuwany jest http:// i w ogóle te linki stają się nubolinkami (newbielink)
  • te, które na przykład mają mniej niż 50 postów, mogą pozostawiać aktywne linki, ale wszystkie linki otrzymują atrybut nofollow.
  • Cóż, ci, którzy mają więcej niż 50 postów, mogą wstawić najpopularniejsze aktywne linki, które przenoszą ciężar witryny na stronę, do której prowadzi link.

Uwierz mi, potencjalni SEO są bardzo ostrożni w kwestii formy, w jakiej ich link trafia na stronę. Szybko stracą zainteresowanie twoim forum, jeśli nie będą mogli łatwo zamieścić tam swoich gównianych linków do swoich gównianych stron.

Tak, nawiasem mówiąc, powyższe zasady działają również w polach takich jak podpisy.

Aby zainstalować tę wtyczkę, przejdź do jej oficjalnej strony. Pobierz archiwum anti_spam_links_v1.0.1.zip (numer może być inny). Ponownie w panelu administratora przejdź do instalacji pakietów (tak jak zrobiłeś to w przypadku poprzedniego pakietu) i zainstaluj go. Dla tego pakietu nie ma pliku językowego, więc nie ma potrzeby rozpakowywania archiwum ani robienia z nim czegokolwiek.

Aby skonfigurować wtyczkę przejdź do sekcji

Konfiguracja → Konfigurowanie modów… → Konfigurowanie modyfikacji

Jeśli chcesz, określ, ile wiadomości musi posiadać użytkownik, aby zwiększyć swoje możliwości.

Wniosek

Te dwie wtyczki BARDZO ułatwią życie Twojemu właścicielowi forum i pozwolą zaoszczędzić mnóstwo czasu. Jednak od czasu do czasu spamerzy się przedostają i przynajmniej raz w tygodniu trzeba „przerzedzić” użytkowników i usunąć spam. Dlatego nie porzucaj swoich zasobów internetowych!