Обфускация email средствами CSS

Проблема: Боты спамеров с помощью регулярных выражений находят на страницах сайта email-адреса и заносят их в свою базу. Нужно каким-то образом нарушить обнаружение email.

Решение:
Javascript - самый известный способ.

<script type="text/javascript">
document.write("name"+"@"+"mail"+".ru");
</script>

Во-первых, некоторые спам-боты уже научились обходить этот трюк. Во-вторых, у клиента может быть отключен js и тогда он ничего не увидит.

CSS. Способ гораздо менее известный и на мой взгляд легче реализуется. К тому же работает независимо от наличия яваскрипта у клиента. Суть метода, в том, что мы выводим вывернутый наизнанку email в html-код: name@mail.ru ? ur.liam@eman.

Как перевернуть строку задом наперед. Изначально наш email лежит где-нибудь в базе в виде name@mail.ru. При выводе в html-код перевернуть его можно с помощью php-функции strrev()

<?php
echo strrev("name@mail.ru");  // выведет "ur.liam@eman"
?>

Теперь спамерам будет тяжеловато использовать такой email.

Но обычному пользователю нужно показывать правильный адрес. Т.е. нам нужно обратно перевернуть ur.liam@eman в name@mail.ru, но уже средствами CSS.

В CSS есть свойство direction, которое определяет направление вывода текста. Данное свойство не переворачивает строку, а лишь сообщает браузеру в каком направлении его нужно выводить: справа налево или слева направо. По умолчанию свойство direction имеет значение ltr - left to right. Но можно поменять это свойство на rtl - right to left.

Свойство unicode-bidi переворачивает строку в соответствии с заданным направлением вывода, которое задается свойством direction. Задав для строки стиль {unicode-bidi:bidi-override; direction: rtl;}, в браузере эта строка будет вывернута справа налево.

<style type="text/css">
span.codedirection { unicode-bidi: bidi-override; direction: rtl; }
</style> 

<span class="codedirection">ur.liam@eman</span>

Данное решение не является панацеей, но в любом случае затруднит парсинг страницы для обнаружения email.

#1

метод действительно эффективный и не нужно использовать mail[собака]mail.ru :))

Cawabunga, 4.12.2008 - 00:36
#2

Ха... Прикольный способ.
CSS вообще сила))))

Алексей, 6.01.2009 - 22:02
#3

Спасибо!
Вот это относительно оригинальное и изящное решение!
Ранее не встречалось, значит не заезженное.
Еще раз спасибо!

Елена, 25.03.2009 - 00:26
#4

Есть в приколе с css одна печальная неожиданность.
Возниклет она когда юзверь захочет скопипастить адресок к себе в почтовый клиент :(

vadik, 7.04.2009 - 20:07
#5

Спасибо!

но всетаки вопрос, данный код работает только в случае есло нет функции mailto/там же должен быть написан нормальный маил/? или гдето я торможу :(

dma, 12.05.2009 - 17:20
#6

Есть еще один хитрющий способ
Идем http://vu0.ru

После этого вставляем как обычную ссылку.

Сергей, 18.10.2010 - 16:00
#7

при копировании в буфер такого адреса все через ж..
и кто сказал что боты используют css при парсинге страниц???

Dan, 30.11.2010 - 01:09
 
английский язык для начинающих
Ашманов Египет Москва РХТУ Россия США Снежинск Таиланд Тушино Урал Челябинская область Яндекс алкоголь английский язык баги база данных безопасность бизнес блоги взлом видео выставка выходные горные лыжи дайвинг дауншифтинг допинг идиотизм инвентарь интернет книги кэширование мозг море музей ноутбук образование оптимизация отдых отпуск пароль плагин пора сваливать программирование программисты путешествия работа работоспособность радиация реклама самогоноварение собеседование социальные сети спам стартап статистика страны тайм-менеджмент техника учеба фантастика фото фриланс хакер экология электронные деньги юмор Ajax CMS DbSimple DDOS email FireFox Google honda htaccess HTML javascript jQuery life md5 MySQL PHP SEO soft SQL vkontakte Web web 2.0 wordpress