Мои заметки

  • Как я работаю с заказчиком при создании сайта

    Создание сайта проходит в несколько этапов, требующих действий не только со стороны непосредственно разработчика, но и со стороны заказчика. Чтобы наша совместная работа была более эффективной, я предлагаю следующий алгоритм поэтапного создания сайта.

  • Оптимизация сайта под поисковые системы пошагово.

    Это рассказ о том, как я пытался подстроить сайт по продаже недвижимости в Таиланде в различных поисковиках. Ни в коем случае не руководство

  • Полезные ссылки на память

    Эту заметку я постараюсь периодически обновлять, добавляя сюда инструменты и сайты, которыми пользуюсь при разработке собственных дизайнов. Кроме того, здесь будут ссылки на ресурсы, полезные мне, как начинающему художнику и иллюстратору.

  • Специальные символы HTML

    Таблица специальных символов себе на память, чтобы использовать в последующем где-нибудь в проектах.

Защита e-mail адресов на сайте

Проблема защиты e-mail адресов от спамеров довольно существенна. Это я ощутил, когда разместил на этом сайте только что созданный e-mail адрес, и на него тут же стало присылаться несчетное количество спама. Почему люди не понимают, что спаммерство - это не способ продвижения своего бизнеса, а лишь источник раздражения, непонятно. Тем не менее, если есть придурки, готовые платить деньги за спам-рассылки, то найдутся и такие "умельцы", что будут оказывать услуги рассылки этого спама. Соответственно, нам, добропорядочным и счастливым владельцам сайтов, надо искать методы защиты своих e-mail адресов от роботов (сокращенно "боты"), созданных умельцами, и сканирующих наши сайты на наличие e-mail-ов.

Мне известно несколько способов защиты e-mail адресов от спама. Рассмотрим их подробно:

  • использование JScript для кодирования адреса — отличный способ защиты e-mail адресов, который хорошо подходит тем, кто считает, что все пользователи работают с включенным JavaScript-ом. К сожалению, это не всегда так. Многие люди в боязни получить по сети вирус посредством JavaScript-a отключают выполнение скриптов. Так что эти люди не увидят ничего хорошего. Поэтому этот метод не так хорош;
  • подмена части или всего адреса картинкой, которую бот не распознает. Минус этого метода в том, что реальный посетитель сайта не сможет корректно скопировать e-mail. А зная о том, что большинство посетителей интернета далеки от глубоких познаний в этой области, можно ожидать от них совершения последующих ошибок и раздражении от непонимания сущности ошибки. Поэтому этот метод плох;
  • замена значка @ на какую-нибудь надпись, типа, [at] или [dog]. Ну, это вообще бред. Вам будет удобно читать адрес, типа myemail [at] somewhere.com? Мне нет, полагаю, что и Вам тоже;
  • замена ссылки c e-mail адресом ссылкой на страницу с формой обратной связи, заполнив которую посетитель отправит сможет отправить Вам письмо. Таким образом Вы точно не "засветите" свой e-mail, но так Ваш адрес не узнают не только боты, но и люди;
  • ну, и последний способ защиты e-mail адресов - это замена букв в адресе на коды символов в Unicode, используя серверные языки программирования. На мой взгляд один из лучших способов. Суть его состоит в том, что мы меняем каждую букву на символ из таблицы Unicode. В итоге, пользователь видит e-mail:pupkin@mail.ru, в html-виде, который получает бот этот e-mail выглядит как последовательность символов &#[несколько цифр];&#[несколько цифр];&#[несколько цифр];&#[несколько цифр];... . Недостаток этого метода в том, что по большому счету таблица символов Unicode известна не только нам, но и умельцам, которые могут запустить спам-бот отыскивать подобные последовательности символов. Однако для настоящих посетителей сайта этот способ наиболее удобен. Именно поэтому этот способ был принят на вооружение в системе OnFly CMS v.3

С помощью вот такой функции можно реализовать замену e-mail адресов на странице в последовательность символов Unicode

function email_protection($text) {
while(eregi("([]*[_\.0-9a-z\-]+\@[0-9a-z_\-\.]+\.+[a-z]{2,4})[^a-z]{1}", $text, $gotcha))
 {
 $gotcha_safe[1] = '';
 for($i=0; $i  $gotcha_safe[1] .= '&#'.ord($gotcha [1][$i]).';';
 $text = str_replace($gotcha [1], $gotcha_safe[1], $text);
 }
return $text;
}

Суть функции в том, что мы ищем в переданной переменной $text e-mail адреса, помещая их в $gotcha, а затем преобразуем символы из этой переменной в символы Unicode и добавляем их в строку $gotcha_safe, в которой в итоге будет храниться измененный e-mail адрес. После этого меняем в тексте найденную $gotcha на преобразованную $gotcha_safe и возвращаем строку, откуда взяли.

Еще раз повторюсь, этот метод не даёт 100%-ной гарантии, но, по крайней мере, помогает улучшить защиту от некоторого количества спаммеров.

comments powered by Disqus