Ochrona przed spamem (żniwiarkami)


Ostatnim czasem wyszedłem z założenia, że warto by wspomnieć o możliwości obrony przed programami zbierającymi adresy e-mail ze stron przy pomocy CSS. Mimo że sposób ten jest bardzo prosty nie kojarzę, abym spotkał się z nim na przeglądanych przeze mnie stronach.

Całość opiera się na wykorzystaniu właściwości content umożliwiającej dodanie tekstu do wybranego tagu HTML. Co ważne szersze wykorzystanie tego sposobu jest skutecznie blokowane przez przeglądarkę Internet Explorer, która umożliwia korzystanie z właściwości content tylko w połączeniu z pseudoklasami :before / :after, które z kolei dostępne są dopiero od wersji 8 przeglądarki.

Przechodząc do konkretów:

<!html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
   <head>
       <style>
         span:before{ content: "@" }
      </style>
   </head>
   <body>
      my<span>email.pl</span>
   </body>
</html>

zobacz wersję działającą

Dodatkowo, aby powyższy kod działał prawidłowo pod IE8 musi zostać dołączona definicja DTD. Powyższy sposób jest, a raczej powinien być wyjątkowo skuteczny z powodu sposobu działania żniwiarek (programów zbierających emaile ze stron). Z zasady ich działanie opiera się na przeszukaniu kodu strony pod kontem występowania tekstu pasujących do wyrażenia regularnego, które w dużym uproszczeniu można przedstawić następująco \b.*?@.*?\b.

PS. Okazało się, że przeglądam mało stron :) Po wejściu na Wikipedię w celu upewnienia się co do nazwy zbieraczy maili okazało się, że jest tam zamieszczony ten sam sposób obrony.


3 odpowiedzi do “Ochrona przed spamem (żniwiarkami)”

  1. IE6 nie obsługuje tych pseudoklas, przez co tekst nie ma małpy (myemail.pl). Można to obejść przez JS, ale zawsze to dodatkowa robota i warto by wspomnieć w notce ;) Wesołych Świąt :)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *