SPAM na forum

Ostatnio istną plagą jest SPAM na forach internetowych, w księgach gości czy w komentarzach na blogach. Taki spammer wchodzi na forum i w dowolnym temacie pisze, że „pewna część Twojego ciała jest malutka, ale można ją powiększyć” i daje link do strony oferującej tego typu usługi. Spammer nawet się nie przejmuje tym, że na forum rozmawiamy po Polsku, on i tak wie, że wiele osób zna język angielski, poza tym te spammerskie posty wrzuci na setki for internetowych, więc zawsze ktoś kliknie w link. Taki spammer bez problemu da sobie radę z założeniem konta na forum gdyż większość osób używa standardowego forum opartego na PHPBB2 i nawet jeśli przetłumaczymy skrypt na rodzimy język to on dobrze wie, że: w pierwszym polu od góry wpisuje się login, drugim adres email a w trzecim i czwartym hasło. Mało tego – taki spammer może nawet napisać program, który wyszukuje fora dyskusyjne (od czego są google) i automatycznie zakłada nowe konta, loguje się i tworzy nowe wątki (SPAM). Jednak są skuteczne formy walki z takimi spammerami…
Jakiś czas temu napisałem prosty skrypt który po zauważeniu zakazanego słowa nie publikował wiadomości na forum. Jednak tutaj musiałem ostrożnie dodawać słowa, bo nie każdy kto pisze viagra ma na celu zareklamować stronę na której można kupić ten specyfik (wyobraź sobie, że na forum medycznym dwóch lekarzy rozmawia o negatywnych skutkach stosowania tego specyfiku a tu ich wypowiedzi nie są publikowane). Dlatego też do czarnej listy dodawałem adresy spammerskich stron. Jednak spammerzy co chwilę zakładali nowe domeny i taka zabawa w kotka i myszkę nie przynosiła dobrych efektów. Jednak postanowiłem troszkę namieszać: dodałem w formularzu rejestracyjnym nowe pole w którym trzeba wpisać imię Małysza. Prawie każdy Polak wie jak ma na imię Małysz i bez problemu odpowie na to pytanie a obcokrajowiec nie znający języka polskiego nawet nie będzie wiedział o co chodzi

Efekt? Zabezpieczenie wprowadziłem w okolicach 13 stycznia (13 stycznia o tym pisała Patrycja Kierzkowska na swoim blogu). Do dzisiaj na forum nie pojawił się ani jeden SPAM. To zabezpieczenie można wykorzystać również w serwisach internetowych w których pod artykułami można zamieścić swój komentarz itp. Odnośnie mojego blogu, to stosuję inne zabezpieczenie: wtyczka Akismet, która usunęła kilka tysięcy SPAMów a przepuściła może 5.

Jak wdrożyć to zabezpieczenie na swoim forum?
1. W pliku usercp_register.php znajdź ciąg znaków: // Get current date i w następnej linii dopisz następujący kod:

if (trim(strtolower($HTTP_POST_VARS[‚malysz’]))!=”adam”){
message_die(GENERAL_ERROR, ‚Nie wpisałes imienia Małysza (lub wpisałes błędne imie). Prawdopodobnie jestes spammerskim robotem’, ”, __LINE__, __FILE__, ”);
}

2. W pliku templates/subSilver/profile_add_body.tpl znajdź następujący ciąg znaków:

<tr>
<td class=”row1″><span class=”gen”>{L_EMAIL_ADDRESS}:
*</span></td>
<td class=”row2″><input type=”text” class=”post”
style=”width:200px” name=”email” size=”25″ maxlength=”255″
value=”{EMAIL}” /></td>
</tr>

i po nim dodaj następujący kod

<tr>
<td class=”row1″><span class=”gen”>Wpisz imię Małysza
*</span></td>
<td class=”row2″><input type=”text” class=”post”
style=”width:200px” name=”malysz” size=”10″ maxlength=”255″ value=””
/></td>
</tr>

20 komentarzy to “SPAM na forum”

  1. Arkadiusz Podlaski napisał(a):

    Z tym spamem jest coraz gorzej :/ Znasz Damian może jakiś sposób na zatrzymanie spamu w jPortalu? Bo powoli dobierają się do mojego forum :/

  2. Damian Daszkiewicz napisał(a):

    Z jPortalem nie miałem do czynienia, ale trzeba w odpowiednim miejscu troszkę zmodyfikować kod tak aby dodanie nowego komentarza czy posta na forum wymagało podanie odpowiedzi na jakieś pytanie (np. imie Małysza).

  3. Mendax napisał(a):

    bez obrazy, ale skoro sie o czyms pisze, to powinno sie miec chociaz jako-takie pojecie o tym…
    to nie ludzie z zagramanicy umieszczaja spam na forach, a boty, czyli specjalnie pisane do tego celu programy, ktore wykonuja to automatycznie: jedne lepiej, inne gorzej… celem tego wszystkiego jest zdobycie linkow.

  4. Damian Daszkiewicz napisał(a):

    Oczywiście wiem, że w 90% to są spam-boty a jedynie w 10% obcokrajowcy, ale wiem że nie każdy kto czyta mojego bloga jest „oblatany” w sprawach technicznych więc czasem trzeba coś o czym piszę troszkę uprościć, aby ludzie zrozumieli sens tego co piszę

  5. skromna85 napisał(a):

    Hmmm może być problem z wielkością znaków w tym co dałeś [mi kiedyś Sandra nie równało sie sandra – probowałam przypomnieć swoje hasło do forum i miałam podać login, imie i email]

  6. Damian Daszkiewicz napisał(a):

    W tym skrypcie nie ma problemu, że wpiszesz Adam czy ADAM zamiast adam, gdyż skrypt to co się wpisało za pomocą funkcji strtolower zamienia na małe litery a dopiero później porównuje z ciągiem znaków „adam”

  7. […] 5 kwietnia pisałem na blogu w jaki sposób rozwiązałem problem ze spamem na forum. Ostatnio buszowałem sobie po internecie, natrafiłem na stronie Heliona na książkę: Jak założyć skuteczny i dochodowy sklep internetowy. Na końcu recenzji książki jest banner prowadzący na oficjalne książkowe forum. Podczas rejestracji na forum zauważyłem taką ciekawą rzecz: […]

  8. Anna napisał(a):

    Proszę mi pomóc , bo pierwsza część wklejanego kodu ” 1. W pliku usercp_register.php znajdź ciąg znaków: // Get current date i w następnej linii dopisz następujący kod:

    if (trim(strtolower($HTTP_POST_VARS[’malysz’]))!=”adam”){
    message_die(GENERAL_ERROR, ‘Nie wpisałes imienia Małysza (lub wpisałes błędne imie). Prawdopodobnie jestes spammerskim robotem’, ‘’, __LINE__, __FILE__, ‘’); } ” powoduje u mnie błąd i forum w ogóle się nie wyświetla . Co robię nie tak ? Wkleić w następnej linii? Wklejam w następnej . Proszę o pomoc , bo już nie mam siły codziennie wyrzucać po kila setek nowych użytkowników , o których wiadmo , że są spamerami .

  9. Anna napisał(a):

    Aha treść błędu jaest taka : Parse error: syntax error, unexpected T_STRING in /home/anleda/ftp/grafika/includes/usercp_register.php on line 623

  10. Damian Daszkiewicz napisał(a):

    WordPress zamienił normalne cudzysłowy na cudzysłowy drukarskie, więc pewnie to jest przyczyną błędu.

  11. mASTEr napisał(a):

    Tutek okazał się bardzo pomocny, dziękuję!

  12. KaiNN napisał(a):

    Nie mogę znaleźć tego ciągu znaków z 1ego punktu ;/ Może małapodpowiedź w której linijce to znajdę?

  13. Damian Daszkiewicz napisał(a):

    KaiNN – odezwij się na priva to pomogę

  14. […] Przykładowo: w tym wpisie doradziłem jak w prosty sposób można zmodyfikować formularz rejestracyjny, aby spam boty nie rejestrowały się na forum (trzeba było dodać jedno dodatkowe pole w formularzu rejestracyjnym w którym należało wpisać odpowiedź na pewne pytanie). Niestety, owa modyfikacja polegała na modyfikacji rdzennych plików. I problem się pojawiał, gdy wychodziła nowa wersja PHPBB2. Jeśli pliki, które zmodyfikowałem zostały zaktualizowane, musiałem je nadpisać a potem od nowa wprowadzić swoje poprawki (albo ściągnąć specjalny plik w którym były podane zmiany jakie zostały dokonane w owym pliku i ręcznie wprowadzić te zmiany). W przypadku mojego rozszerzenia nie było to kłopotliwe, bo mechanizm antyspamowy był dość prosty w implementacji i trzeba było zmodyfikować tylko 2 pliki, ale pomyśl sobie co by było, gdyby trzeba było zmodyfikować 20 plików a potem by wyszła nowa wersja PHPBB2 […]

  15. […] w tym wpisie doradziłem jak w prosty sposób można zmodyfikować formularz rejestracyjny, aby spam boty nie […]

  16. Damian napisał(a):

    No właśnie ja mam Php BB2 modyfikowane przez przema i nie moge znaleźć // Get current date

  17. Damian Daszkiewicz napisał(a):

    W zwykłym PHPBB2 za //Get current date jest linijka:

    $sql = „INSERT INTO ” . USERS_TABLE . ” (user_id, username, user_regdate, [ciach]

    Więc w PHPBB By Przemo należy odnaleźć tę linijkę i przed nią dodać ową wstawkę

  18. samp napisał(a):

    ciekwawe bajery

  19. Altamira napisał(a):

    To, o czym Pan pisze to hołota. Prawdziwi spamerzy wyszukują fora tematyczne, adekwatne do branży klienta i piszą posty na temat. Mało tego, często tworzą tematy, w których toczą normalne dyskusje pod innym nickiem tylko po to, by w odpowiednim momencie umieścić post z linkiem strony klienta. Bywa, że wątki zakładane przez spamerów dostają plusy, a nawet pojawiają się wśród najlepszych propozycji tygodnia, zaś ich wypowiedzi są interesujące merytorycznie (to daje większe szanse, że post nie zostanie usunięty). Znam kilka forów, gdzie spamerzy generują główny ruch i prowokują dyskusje. Trudno więc wrzucać wszystkich do jednego worka bo różnica między osobą zajmującą się marketingiem szeptanym a automatem do spamowania jest ogromna.

  20. Damian Daszkiewicz napisał(a):

    @Altamira – zwróć uwagę na trzy rzeczy:

    1) Wpis jest z 2007 roku, czyli sprzed 7 lat. Wtedy marketing szeptany nie był aż tak popularny jak teraz.

    2) Oczywiście zdaję sobie sprawę z tego, że część spammerów pisze posty na forach. Z doświadczenia wiem, że większość z nich to bezczelni spammerzy piszący posty, które „na kilometr śmierdzą”. Tutaj wystarczy mieć dobrą armię moderatorów, która z powodzeniem sobie z tym zjawiskiem poradzi (wiadomo, może nie zawsze usuną każdy spam, ale na pewno zdecydowana większość spamu jest usuwana w ciągu kilkunastu minut).

    3) Automaty zakładające konta na forach to wielki problem. Gdy pisałem ten wpis na blogu sam musiałem dziennie usuwać kilka kont, stąd też postanowiłem znaleźć jakieś proste rozwiązanie które umożliwi mi zmniejszenie liczby spamerów. Owszem moje rozwiązanie nie usuwa wszystkich problemów, ale lepiej jest się pozbyć jednego problemu, niż nic nie robić.