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>
kwiecień 6th, 2007 at 11:10
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 :/
kwiecień 6th, 2007 at 11:51
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).
kwiecień 6th, 2007 at 18:35
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.
kwiecień 6th, 2007 at 20:13
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ę
kwiecień 6th, 2007 at 23:15
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]
kwiecień 10th, 2007 at 20:56
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”
maj 19th, 2007 at 10:03
[…] 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: […]
listopad 30th, 2007 at 13:34
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 .
listopad 30th, 2007 at 13:38
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
listopad 30th, 2007 at 14:08
Wordpress zamienił normalne cudzysłowy na cudzysłowy drukarskie, więc pewnie to jest przyczyną błędu.
luty 9th, 2008 at 18:37
Tutek okazał się bardzo pomocny, dziękuję!
lipiec 4th, 2008 at 08:42
Nie mogę znaleźć tego ciągu znaków z 1ego punktu ;/ Może małapodpowiedź w której linijce to znajdę?
lipiec 8th, 2008 at 18:08
KaiNN - odezwij się na priva to pomogę