Обфускация 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
#8

Вот здесь можно просто добавив сайт в cloudflare.com

https://support.cloudflare.com/hc/en-us/articles/200170016-What-is-Email-Address-Obfuscation-?flash_digest=c6eeed816453c6757ea5adf888b2904d4afa22d1

Webmaster, 29.04.2014 - 19:28
Оставить комментарий