|
|
Как известно, основной проблемой интернета являются popup окна и спамеры. Если первую проблему можно решить, просто настроив пару фильтров почти в любом браузере, то вторая проблема – спамеры, куда более серьезна и требует к себе большего внимания.
Что бы понять, как бороться со спамом, нужно сначала определить, откуда же берутся адреса для e-mail рассылок спама. Часть адресов спамерам продают недобросовестные администраторы крупных сайтов и компаний, еще часть берется с досок бесплатных объявлений, и основная часть e-mail'ов вычленяется из форумов и информационных порталов. Основной причиной, из-за которой с форумов и веб-сайтов "берутся" почтовые адреса – халатность администраторов и безрассудность пользователей, смело оставляющих свой e-mail везде, где попало. С пользователями все понятно, на то они и пользователи, что бы доставлять хлопоты и создавать проблемы администратору. А вот некоторым администраторам сайтов и форумов следовало бы позаботиться о своих посетителях, и самим, своими силами защищать их почтовые адреса.
Существует несколько способов защиты адреса электронной почты:
По-моему это все способы, которые я помню, если у вас есть еще какие ни будь способы защиты адресов – пишите.
Рассмотрим первый случай – замена адреса его эквивалентом в ASCI. Вот php-функция замены:
function nospam($email)
{
$nospammail="";
$getval = strval($email);
for ($i = 0; $i < strlen($email); $i++) {
$asciicode = ord($getval[$i]);
$nospammail .= "&#$asciicode;";
}
return $nospammail;
}
Здесь все просто, символы e-mail'а по очереди конвертируются в их ASCI представления, в результате получается нечитаемый адрес для большинства спам-ботов, однако в большинстве интернет браузеров данный адрес отображается нормально.
Второй, третий и четвертый пункты – готовые решения, несложно найти в Яндексе или Google.
Пятый способ защиты электронного адреса с помощью PHP-функции тоже очень прост в реализации:
function nospam($email)
{
$spam = array("@", ".");
$nospam = array("[собака]", "[точка]"); // с таким же успехом сюда можно добавить тег <img>
return str_replace($spam, $nospam, $email);
}
Ну и, наконец, шестой – самый сложный с точки зрения осуществления вариант защиты, т.к. практически невозможно угадать, какой длинны e-mail у вашего пользователя:
/* обратите внимание!! данная функция не возвращает изображения */
/* она его сразу выводит в браузер, но можно сохранить */
/* данное изображение добавив к функции imagepng ($im, имя_файла); */
function nospam($email)
{
header ("Content-type: image/png"); // заголовок о том что этот файл - изображение
$im = @imagecreate (200, 20) // создание пустого изображения
or die ("Cannot Initialize new GD image stream"); // если не получилось, сообщаем об этом и выходим
$background_color = imagecolorallocate ($im, 250, 250, 250); // светло-серый фон изображения
$rand_color = imagecolorallocate ($im, rand(50, 150), rand(50, 150), rand(50, 150)); // случайный цвет текста
imagestring($im, 3, 3, 3, "[email protected]", $rand_color); // выводим е-mail
imagepng ($im); // отправляем изображение в браузер
}
Вот и все, что я хотел бы рассказать вам в этой статье. И на последок, хотелось бы добавить, что желательно использовать сразу несколько способов защиты электронных адресов или ее вариантов, чередуя их в случайном порядке – это еще больше осложнит жизнь спамерам, которые так и норовят, осложнит получение почты нам – простым владельцам e-mail'ов.