Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
Новости
Последние поступления
Книжный магазин
  Hardware:
Видеоустройства
Системные платы
Процессоры
Мобильные устройства
Аудиосистема
Охлаждение системы
Накопители информации
КПК и ноутбуки
Телефоны и связь
Периферия
Система
Сети
Разные устройства
 
  Programming:
Web-разработка
Языки программирования
Технологии и теория
Разработка игр
Программная инженерия
 
  Software:
Операционные системы
Windows 7
Базы данных
Обзоры программ
Графика и дизайн
   
  Life:
Компьютерная жизнь
Разные материалы
   
Партнеры
Публикация
Правовая информация
Реклама на сайте
Обратная связь
Экспорт в RSS Экспорт в RSS2.0
    Читать в Яндекс.Ленте



Еще один способ защиты от спама отображаемых на сайте емейлов

Раздел: Programming / Вебмастеру @ 26.10.2008 | Ключевые слова: спам антиспам spam защита от спама версия для печати

Автор: snnwolf
Источник: habrahabr

Проблема защиты от спама емейлов, выложенных на сайте, уже наболевшая и давно затертая до дыр. Но я случайно нашел еще один способ борьбы.

Можно, конечно, использовать следующие способы защиты:
— Графическое изображение
— Замену символов. Типа spam[at]must[dot]die
— Вывод через js вида
var login = `spammer`;
var server = `must.die`;
var email = login+`@`+server;
var url = `mailto:`+email;
document.write(`<a href="`+url+`">`+email+``
);


— можно использовать простенький вывод &#ANSI_код_символа; на php:
$email = `spammer@must.die`;

$url = `mailto:spammer@must.die`;

$safe_email=$safe_url=``;

for($i=0; $i<strlen($email); $i++){

   $safe_email .= `&#`.ord($email{$i}).`;`;

}

for($i=0; $i<strlen($url); $i++){

   $safe_url .= `&#`.ord($url{$i}).`;`;

}

print "<a href=`$safe_url`>$safe_email</a>";


Когда для моего последнего проекта print-com.biz нужно было сделать защиту выкладываемого мыла от спама, то в поисках оного наткнулся на этот интересный сервис.
Пошарив в коде, получим:
  function encode(email, text, tpl) {
    var t = tpl.replace(/{e}/g, email);
    var a = t.replace(/{text}/g, text);
    t = "";
    for (i = 0; i < a.length; i++) {
      if (a.charCodeAt(i) <= 127) {
        t += (String.fromCharCode(Math.floor(a.charCodeAt(i) / 16) + 65))
        t += (String.fromCharCode(a.charCodeAt(i) % 16 + 65));
      } else {
        t += a.charAt(i);
      }
    }
    var to = t;

    return t;
  }
  function decode(a) {
    var t = "";
    for (i = 0; i < a.length; i++) {
      t += (a.charCodeAt(i) <= 127) ?
        String.fromCharCode((a.charCodeAt(i) - 65 ) * 16 + (a.charCodeAt(++i) - 65))
        :
        a.charAt(i);
    }
    return t;
  }

* This source code was highlighted with Source Code Highlighter.


Возникает закономерный вопрос, а почему бы не реализовать нечто подобное, скажем, на php?
И вот, что получилось.
function encode_email($email, $text = null, $tpl = null)

{

  if (empty($email)) return false;

  if ($tpl === null) $tpl = "<A HREF=\"mailto:{e}\">{text}</A>";

  if ($text === null) $text = $email;

  $t = str_replace(`{e}`, $email, $tpl);

  $a = str_replace(`{text}`, $text, $t);

  $result = ``;

  for($i = 0; $i < strlen($a); $i++) {

    if (ord($a[$i]) <= 127) {

      $result .= chr(floor(ord($a[$i]) / 16) + 65)

      . (string)chr(ord($a[$i])%16 + 65);

    } else {

      $result .= (string)$a[$i];

    }

  }

  $code = "";

  $code .= "<script type=\"text/javascript\">"

  . "a=\"" . $result . "\";"

  . "for(i=0;i< a.length;i++){document.write((a.charCodeAt(i)<=127)?String.fromCharCode((a.charCodeAt(i)-65)*16+(a.charCodeAt(++i)-65)):a.charAt(i))}"

  . "</" . "script>"

  . "<noscript>".str_replace(array(`@`, `.`), array(`©`,`·`), $email)."</noscript>";



  return $code;

}




В итого для мыла spam[at]must.die получается, что-то типа:
DMEBCAEIFCEFEGDNCCGNGBGJGMHEGPDKHDHAGBGNEAGNHFHDHECOGEGJGFCCDOНаписатьCAписьмоCAбезCAспамаDMCPEBDO.
А после декодирования средствами js мы видим нормальную ссылку на email.

Так что пинайте, только не очень больно. Буду благодарен за любую критику по делу.

Это интересно:








версия для печатиРаспечатать статью


Вернуться в раздел: Programming / Вебмастеру


Реклама:
Читать наc на:

Add to Google
Читать в Яндекс.Ленте






Rambler's Top100
© Copyright 1998-2012 Александр Томов. All rights reserved.