Wpisy z lipiec, 2009

Bezpieczne wyświetlanie adresu e-mail

W dzisiejszych czasach podanie adresu e- na stronie internetowej może się wiązać z przykrymi konsekwencjami, programy typu email harvester zbierają adresy z wszystkich napotkanych stron i tworzą bazy danych dla spamerów. Najlepszym sposobem jest niepodawanie adresów na stronie, zamiast tego można stworzyć formularz kontaktowy (który zresztą też trzeba zabezpieczyć przed spamerami – najlepiej przy użyciu Captcha). Można też zastępować znaki słownymi odpowiednikami, np. imie[kropka]nazwisko[malpa]wp[kropka]pl, nie wygląda to jednak najlepiej.

Co więc zrobić gdy klient uprze się, że chce mieć adresy na stronie, ale niekoniecznie chce dostawać reklamy viagry? Jednym ze sposobów jest zamiana adresu email na zapis w encjach, np adres:

imie.nazwisko@server.pl

w źródle strony będzie wyglądał tak:

imie.& ....

Nie daje to 100% skuteczności, ale podobno większość harvesterów mamy już z głowy. Funkcję, która zamienia ciąg znaków na encje przedstawiam poniżej:

function safetyMail($mail) 
{
    $safety = '';
    for ($i=0; $i<strlen($mail); $i++) {
      $no = ord($mail[$i]);
      $arr = array();
      $arr[] = $no;
      $arr[] = 'x'.dechex($no);
      $no = $arr[rand(0,1)];
      $safety .= "&#".$no.";";
    }
    return $safety;
}

Najlepiej używać jej na całym wyrażeniu mailto:adres@email.com, gdyż robaki często szukają po wyrażeniu mailto:. Jeśli nie wiemy w którym miejscu klient wstawi adres email, dla pewności możemy podpiąć funkcję, która wyszuka wszystkie adresy i zamieni je na encje, kod poniżej:

function safetyMails($params)
{
    $s = $params["s"];
    $mask = '|([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})|U';
    preg_match_all($mask, $s, $out);
    foreach ($out[0] as $mail) {
      $s = str_replace('mailto:'.$mail, safetyMail('mailto:'.$mail), $s);
      $s = str_replace($mail, safetyMail($mail), $s);
    }
    return $s;
}

Reasumując, przedstawiony sposób nie daje nam gwarancji pełnego bezpieczeństwa, wydaje mi się, że bezpieczniejsze jest podmienianie adresów za pomocą JavaScript’u, jednak nie jest to dobre ze względów estetycznych, na wolniejszych łączach zanim wykona się nam JavaScript, użytkownik może widzieć przez jakiś czas “krzaki”.

Jest 1 komentarz lipiec 20th, 2009

Zmiana hostingu

Po ciężkich przeprawach z poprzednim hostingodawcą, zdecydowałem się przenieść bloga na inny serwer. Na poprzednim była fatalna obsługa klienta, niby na stronie napisali, że kontakt całodobowy, a 3 dni czasem musiałem wydzwaniać. Rozwiązywanie najprostszych problemów strasznie wydłużało się w czasie, a ostatnich problemów nie udało im się rozwiązać w ciągu tygodnia. Nie będę rzucał nazwami firm, nie o to chodzi.

Witam więc na nowym serwerze i mam nadzieje, że nie uraczycie już pustej strony a blog będzie śmigał jak należy.

Skomentuj lipiec 7th, 2009


Kalendarz

lipiec 2009
P W Ś C P S N
« stycznia   stycznia »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Starsze wpisy

Kategorie