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.

Data dodania: 2007-04-11

Wyświetleń: 9294

Przedrukowań: 0

Głosy dodatnie: 3

Głosy ujemne: 0

WIEDZA

3 Ocena

Licencja: Creative Commons

 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, gdyż w ich wypowiedziach pojawia się zakazane słowo: „viagra”). 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 (co prawda ludzie się czepiali, że zawsze znajdzie się ten 1% Polaków, którzy nie znają imienia Małysza, ale można zadawać inne pytania np. „Jakiego koloru jest niebo”).

Efekt? Zabezpieczenie wprowadziłem w okolicach 13 stycznia. Do dzisiaj (10 maj) 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 (instalacja tej wtyczki jest banalna – wystarczy tylko skopiować odpowiedni plik do odpowiedniego katalogu).

Jak wdrożyć to zabezpieczenie na swoim forum (opartym na skrypcie phpBB2)?

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 wpidałeś imienia Małysza (lub wpisałeś błędne imie). Prawdopodobnie jesteś 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>

3) 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>


Jeśli nie korzystasz z forum opartego na phpBB2 ale z innego skryptu a znasz choć trochę PHP to wprowadzenie podobnego zabezpieczenia nie będzie stanowiło wielkiego problemu a zaoszczędzisz masę czasu na usuwaniu SPAMu.

Licencja: Creative Commons