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>

15 odpowiedzi do “SPAM na forum”

  1. Arkadiusz Podlaski Says:

    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. DamianDaszkiewicz Says:

    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 Says:

    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. DamianDaszkiewicz Says:

    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 Says:

    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. DamianDaszkiewicz Says:

    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. Damian Daszkiewicz » Blog Archive » Kto czyta mojego bloga? Says:

    [...] 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 Says:

    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 Says:

    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. DamianDaszkiewicz Says:

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

  11. mASTEr Says:

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

  12. KaiNN Says:

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

  13. DamianDaszkiewicz Says:

    KaiNN – odezwij się na priva to pomogę

  14. Damian Daszkiewicz » Blog Archive » Drupal - świetny CMS Says:

    [...] 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. Drupal – świetny CMS | Pomocnik webmastera Says:

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

Dodaj odpowiedź