День 4й: защищаем ссылки mailto

Фото автора =) 02.11.2007 от ROM

Правило номер один: не помещайте Ваш e-mail адрес в ссылку “mailto:”.

Чтобы сражаться с дьявольским легионом спамеров, веб-дизайнеры и программисты придумали множество хороших решений. Давайте быстро посмотрим на наиболее часто используемые обходные пути и их недостатки.

name [at-no-spam] website.com
Проблема: ссылка будет более удобной, чем вводить адрес вручную и иногда ошибаться.

Контактные формы
Проблема: есть риск, что спамеры воспользуются Вашим аккаунтом, чтобы массово разослать почту (пока вы не воспользуетесь безопасным скриптом).

Сокрытие с помощью javasrcipt
Проблема: Ваш e-mail остается открытым, даже если вы используете сложное шифрование, чтобы его замаскировать. И кто хочет воспользоваться посторонним сайтом для шифрования адреса один раз? Не я.

Прячемся за простой формой
(Например, смотрите на сайте Simon’а Willison’а на кнопочку ‘Reveal my Address’ около верха страницы).

Проблема: ни одной, которую могу представить себе.

Возможное решение: AJAX

Решение, которое я предлагаю, имеет несколько улучшений перед некоторыми обходными путями, которые используются вебмастерами:

  • Легко встраивать
  • Легко изменять
  • Нет суматохи в презентации
  • Нет надобности использовать сторонние утилиты, чтобы зашифровать адрес
  • Нет открытого адреса

По последнему пункту я подозреваю устройства шифрования e-mail и думаю, что спамеры не настолько умны, чтобы сделать реверс-инжениринг кода и собирать любые емейлы, которые зашифрованы этим же методом. На практике, я думаю, что шифрование e-mail в общем безопасно, но факт, что e-mail остаётся в html-коде.

Суть

  • jQuery берет данные с сервера
  • Файл, содержащий e-mail адрес (ссылка mailto:) преимущественно html с простым механизмом защиты

Демо

Я хочу начать с примеров, в которых показывается e-mail адрес, когда посетитель кликает по кнопке или ссылке, и вернусь назад, где e-mail адреса показаны открыто.

Пример с кнопкой. Без эффекта.
Пример с ссылкой. Эффект выпадания.
При загрузке страницы. Эффект выпадания.
При загрузке страницы. Без эффекта.

Код

Это сделано под некоммерческой лицензией creative commons license. Свяжитесь со мной, если Вы хотите использовать код в коммерческом продукте. Сейчас я буду использовать этот код в моей новой CMS для веб- дизайнеров, которую я скоро запущу.

Почему это безопаснее, чем обычная ссылка mailto?

Настоящая проблема ссылок mailto в том, что спамеры могут использовать автоматические программы для сканирования сети и получения адресов из html-кода. Они в основном находят вас так же, как это делает Гугл: следуют ссылкам.

Они ленивые, как большинство из нас. Следовательно, вряд ли они путешествовали по web, записывая адреса для спама.

Посмотрев исходный код любого из примеров, Вы можете увидеть, что адресов нет в html.

Это твердый путь к абсолютной гарантии, что Вы никогда не получите спам и получите только приятные письма от ваших посетителей?.. нет.

Но, убирая адреса из html, меняя секретную фразу в коде jQuery и изменяя имя файла с адресом, возможно даст вам компромисс между удобством для ваших посетителей и безопасностью адресов.

Одна последняя заметка
Посмотрите получше на код первых трех примеров и Вы увидите, что я использую функцию AJAX callback, чтобы включить эффекты slideDown() и show().

Другими словами, я не хочу, чтобы jQuery начала эффект slideDown(), пока информация (html) не будет получена из AJAX вызова. Отсылка секретной фразы на наш простой сервер и получение данных занимает некоторое время.

Правильно:

$(document).ready(function(){
$.post('mailtoInfo.php',{
  pass: "secret"
},function(txt){
  $('div.email').html(txt);
  $('div.email').slideDown("slow");
});
});

Неправильно:

$(document).ready(function(){
$.post('mailtoInfo.php',{
  pass: "secret"
},function(txt){
  $('div.email').html(txt);
});
 $('div.email').slideDown("slow");
});

Популярность: 56%

Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: 15 дней с JQuery, Переводы |

Оставить комментарий

Подпишитесь, пожалуйста:

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.


Рубрики:

Управление:




Рейтинг блогов
Рейтинг блогов
Рейтинг блогов
Яндекс цитирования
Каталог блогов Blogdir.ru
количество читателей онлайн и всего


Я - на Карте
Каждому своё…
Блог о jQuery, Linux и немного программировании