Aplikacje internetowe

Bełdziowe spojrzenie na aplikacje internetowe

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.


Tagi: , ,
Kategoria: Bezpieczeństwo, Bezpieczeństwo aplikacji internetowych


3 komentarze

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

  2. jakby co to jest wspomniane w drugim akapicie ;-) i również Wesołych Świąt :)

  3. Faktycznie, było już za późno i bardziej skanowałem niż czytałem :P żeby nie było nic nie wnoszących komenatrzy, od siebie dodam link do biblioteki dodającej obsługę tych pseudoklas (i innych upośledzeń) dla IE: http://code.google.com/p/ie7-js/

    Jeszcze raz Wesołych :)

Dodaj komentarz