Jak zrobić kuku spamerowi?

Jak wielu innych ludzi, darzę spamerów czystym i płomiennym uczuciem. Jakiś czas temu popełniłem automat do wykrywania spamu na Blox. W zasadzie, to tych skryptów jest kilka i raczej dane zbierają się „na kiedyś”, niż działa to produkcyjnie, ale czasem coś tam podeślę do blokowania. Niemniej, nie jest to pełny automat.

Jeśli chodzi o pocztę, to nie jest u mnie ze spamem źle. Łącznie na wszystkie konta dostaję jakieś małe pojedyncze sztuki dziennie. Część odsiewają dostawcy poczty, przytłaczającą większość tych nielicznych, które przejdą oznacza Thunderbird.

Dodatkowo, jeśli już coś do mnie dotrze, to zwykle trafia na Spamcopa (polecam zarejestrowanie się). Roboty z tym tyle, co kliknięcie Forward i linka w mailu, więc niewiele, a powiadamiane są wszystkie powiązane abuse. Polecam rejestrację. Czasem nawet odpiszą, że zablokowali (i to niekoniecznie nadawcę, bo potrafią reagować także właściciele domen/hostingów na których znajduje się „reklamowana” strona. Tak czy inaczej, o ile nie zadziała to pewnie na spam o niebieskich pastylkach wysyłanych z botnetów (ale liczę, że to odpada na etapie dostawcy poczty, zresztą mało tego typu dociera do mnie), to działa[1] na byznesmenów wysyłających zapytania o możliwość wysłania oferty handlowej do adresatów z baz pozyskanych z ogólnodostępnych źródeł. Znaczy, tłumacząc na polski: na spamerów wysyłających spam, bo (polskie) prawo prawem, ale o tym, czy wiadomość była zamówiona decyduje jednak odbiorca.

Niedawno, podczas szukania rozwiązań antyspamowych trafiłem na ciekawą stronę Email Labirynth, która generuje losowe adresy email w celu zaśmiecenia baz danych harvesterom, a w konsekwencji spamerom. Czyli po pierwsze stracą czas zbierając te adresy, po drugie stracą czas wysyłając maile na nieistniejące adresy, a po trzecie jest spora szansa, że dzięki takim wysyłkom trafią na RBLe. Nie jestem przekonany o skuteczności, ale spróbować IMO nie zaszkodzi. Sceptykom twierdzącym, że spamerzy nie mogą być aż tak głupi od razu mówię, że nie tylko mogą, ale są. Może nie wszyscy, ale większość. No i zwykle mają słabe automaty, a nadzór ludzki kosztuje.

W każdym razie powyższe rozwiązanie ma IMO kilka wad:

  • Brak spamtrapa na każdej stronie. IMHO na każdej(?) stronie wśród generowanych maili powinien być także spamtrap w celu automatycznego zgłaszania IP korzystających z harvestowanych adresów email do abuse/RBLi.
  • Stały adres strony. Wystarczy szczątkowa inteligencja, by nie harvestować tam adresów email.
  • W pełni losowe loginy. Trochę wada, trochę zaleta. W każdym razie wyglądają mało naturalnie i przy odrobinie wysiłku można je odsiać.
  • Brak lokalizacji. Wiadomo, że spamerzy celują z niektórymi produktami raczej w określone grupy klientów, np. klientów z Polski. Dane z ww. strony zdecydowanie nie wyglądają na bazę polskich klientów email.

Koniec końców postanowiłem zrobić swoje rozwiązanie realizujące podobny cel (oczywiście Perl). Na razie mam opracowane częściowe rozwiązanie[2] dla dwóch ostatnich punktów. Punkt drugi też będzie rozwiązany, bo zamierzam opublikować gotowca, którego każdy będzie mógł podpiąć na swojej stronie.

Ponieważ pewnie trochę czasu będę miał dopiero w przyszły weekend, liczę do tego czasu na uwagi dot. sensowności i ew. innych funkcjonalności.

[1] Działa, znam trochę środowisko hostingowe. Przyzwoite hostingi nie przepadają za wysyłającymi spam do zaśmieconych baz adresów email, a z tego co wiem w polskich firmach hostingowych abuse raczej działa.

[2] Jak dam sobie na luz z perfekcjonizmem, to pewnie uznam je za docelowe, przynajmniej w pierwszej wersji.

UPDATE: No i uruchomiłem. Póki co wersja testowa karmnika z adresami email wisi tu.

Jak biec dalej nawet blisko?

W Biedronce pojawiły się napoje na bazie napojów owocowych. Czyli głównie woda, trochę soków, przy czym tych bardziej eksponowanych na opakowaniu naprawdę mało. Do tego dodatki a’la energy drinki – witaminy, kofeina. Tak czy inaczej, wróżę im sukces – zgrabne i ładne opakowanie, pojemność 369 ml, czyli tak akurat, niewygórowana cena. Czasem kupuję, bo upały. Dziś patrzę na opakowanie i widzę:

Jak biec dalej nawet blisko?

Źródło: fot. własna.

Jak biec dalej nawet blisko? Jak mieć refleks szybciej? Jak być wypoczętym bez przerwy? Nie wiem w jakim to języku, ale przy pierwszym nawet nie mogę się domyślić, o co chodzi, a o wersji oryginalnej nawet nie śmiem wnioskować. Niezłe tłumoczenie.

UPDATE: W Piotrze i Pawle też występują, różnią się opakowaniem, ale zawartość i producent identyczne. Jak ktoś chce poczytać więcej, to tu jest strona produktu.

Odchudzanie

Wiadomo, wiosna, więc pora zrzucić zbędny balast. Ale nie każdy człowiek ma ten problem. Ja nie mam (i tej wersji będę się trzymał!). Tym razem chodzi o odchudzanie innego rodzaju i czego innego. Ale po kolei. Przedwczoraj w czytniku RSS dotarłem do wpisu o porzuceniu WordPressa na rzecz statycznego generatora bloga. Pomysł nie jest nowy, nawet kiedyś przymierzałem się do czegoś podobnego, tyle że w Perlu[1]. Ba, nawet kilka testowych wpisów mam wygenerowanych gdzieś tak. Główna zaleta – minimalne wymagania dot. zasobów i szybkość działania po stronie czytelników. Z funkcjonalnością jest gorzej (zwłaszcza brak komentarzy mnie zniechęca), ostatecznie zdecydowałem się na gotowe, utrzymywane na zewnątrz rozwiązanie. Ale sam pomysł nadal mi się bardzo podoba.

Dodatkowo tak się złożyło, że w ostatnim wpisie na temat Disqus został poruszony temat dodatku do przeglądarki o nazwie Ghostery. Zainstalowałem tenże dodatek i trochę mina mi zrzedła. Otóż na tym blogu było wykorzystanych osiem różnych serwisów, które są uznawane za potencjalnie naruszające prywatność. OK, jeśli ktoś ma AdBlocka czy NoScript, to efektywna liczba „szpiegów” mogła być niższa. A przynajmniej użytkownik miał możliwość kontroli, no ale mimo wszystko sporo. A przecież nie o taki Internet walczyliśmy

Piórkiem, pod którym załamał się wielbłąd było jednak spojrzenie dziś rano w konto AdSense, całe 80 zł, średnio 2,5 zł miesięcznie. W tym tempie już za 7 lat będę mógł wypłacić środki. O ile znowu nie zwiększą progu – IIRC jak zakładałem konto, to było 200 zł, teraz jest 300 zł. Co prawda nigdy do zarobku nie miało to służyć, a raczej do tzw. bycia w temacie co w sieci piszczy, dodatkowo mogłem liczyć średnią z trochę za długiego okresu, ale to szczegóły. Nawet przy 5 zł/m-c byłyby to 3 lata do wypłaty i sponsorowanie Google w tym czasie. Chyba rozum postradali.

W każdym razie po zainstalowaniu Ghostery popatrzyłem na inne blogi, gdzie wynik oscylował w okolicy zera, no, czasem w porywach 2 czy 3 „śledzących” serwisów i zadałem sobie pytanie po co to wszystko? Stwierdziłem, że nie ma sensu, bo są jakieś priorytety, a social widgety czy nabijanie kasy Google’owi się do nich nie zaliczają. Zrobiłem więc porządki, najpierw rano testowo na starym blogu, potem, po południu na tym. Sporo rzeczy poleciało…

Po kolei (tylko z tego bloga):

  • Facebook i przycisk like pod wpisem – czasem ktoś kliknie, ale głównie służyło do dawania znać o nowych wpisach na blogu. W sumie mogę puścić linka jako wpis na FB (nie każdy korzysta z czytnika RSS, niestety), to nawet bardziej do znajomych dotrze. Zresztą znajomi z FB stanowią niszową grupę czytelników (lub mają czytnik RSS).
  • Przycisk Wykop, podobnie jak Facebook zintegrowany w Blox. Odkąd włączyłem, nikt nigdy nie użył. Poprzednie doświadczenia wskazują, że jak będzie coś ciekawego, to ludzie dodadzą i bez przycisku.
  • LinkWithin, czyli namiary na podobne wpisy na tym blogu. Niby fajne i estetyczne, ale użycie (wg statystyk) nie było znaczące, poza tym, to samo robi Folskr (został i nie jest rozpoznawany przez Ghostery, poza tym to nisza i znam autora). Że tekstowo? Tak miało być. Zresztą kiedyś robiłem porównanie i Folksr wypadł lepiej.
  • Widget G+. Nawet było parę kliknięć. Dosłownie parę, więc bez żalu do /dev/null.
  • Reklamy AdSense – opisałem wcześniej.

Pora na krótkie podsumowanie efektów. Do badania korzystałem z dwóch narzędzi, które wydają mi się dobre do pomocy przy optymalizacji stron. Pierwszym jest Web Page Test (sporo szczegółowych danych, spory rozrzut pomiędzy kolejnymi testami), drugim Insights od Google (trzeba zwracać uwagę na monopolistę, prawda?; bardzo syntetyczny wynik). Poza tym, zwracałem uwagę co mówi Ghostery. Jeszcze wcześniej korzystałem z PageSpeed do wskazówek na temat optymalizacji stron, ale jakkolwiek nadal jest w tym zastosowaniu przydatne, to nie podaje już syntetycznego wyniku.

W przypadku tego bloga[2] początkowy wynik w Web Page Test to 91/100, czas pierwszego ładowania strony 6,5 sekundy, odświeżenia 4,3 sekundy. Odpowiednio 452 i 143 kB przesyłanych danych. Google Insights prędkość 51 mobilnie, 95 wygląd, dla desktopu ocena 80. 8 widgetów wg Ghostery. Po odchudzaniu jest to odpowiednio 88/100 (spadek? chyba z rozrzutu między pomiarami wynika…), czas ładowania 3,3 sekundy dla pierwszego wczytania i 3,9 dla odświeżenia (ewidentnie coś nie tak, pierwsze ładowanie powinno być wolniejsze). Przesyłane dane to 219 i 54 kB. Google Insights 51 prędkość mobilnie, 96 wygląd mobilnie. Wzrost dla destkopu do 83. Ghostery pokazuje 4 widgety. Został Gemius (serwowany przez Blox, nie mam wpływu), Google Tag Manager (chyba to samo, sam chętnie się dowiem, skąd to się bierze… – GA wstawione przez Blox). Ze swojej strony zostawiłem i mojego Piwika, i statystyki stat4u, które są „od zawsze” i IMHO są niegroźne. Poza tym, moja ciekawość wygrywa. 😉

Czy było warto? Chyba tak, przynajmniej na razie podoba mi się. Popatrzę jeszcze chwilę, prawdopodobnie zrobię jeszcze jedno bardziej hardcore’owe podejście (sprzątanie i minify CSS). Pewnie za jakiś czas znowu coś dodam, w ramach zabawy, ale na ten moment pozostanie odchudzona wersja.

Zauważyłem jedną ciekawą rzecz – wyniki serwisów do optymalizacji bardzo zwracają uwagę na dobre praktyki, ale minimalną na realny czas ładowania strony czy ilość przesłanych bajtów. O ile dobre praktyki pomagają w zmniejszeniu ilości przesłanych bajtów i co za tym idzie czasu ładowania, to ostatecznie dobry wynik w tego typu testach jak widać wcale nie musi oznaczać poprawy dla użytkownika końcowego. Strona ze słabą oceną, czyli „z błędami”, w praktyce może być dużo przyjemniejsza i lżejsza, niż „zoptymalizowana” strona z dużą ilością dodatków.

[1] Chodzi o Chronicle.

[2] NFM: Stary blog 2,5 i 1,8 sek, 267 i 84 kB przed, 1,5 i 1,2 sek, 72 i 45 kB po, Insights bez zmian.