Действительно ли запутывание электронной почты затрудняет автоматический сбор урожая? - PullRequest
27 голосов
/ 11 августа 2009

Многие пользователи и программы на форумах пытаются сделать автоматический адрес электронной почты более сложным, скрывая их через запутывание - @ заменяется на «at» и. заменяется на "точку", поэтому

 team@stackoverflow.com

теперь становится

team at stackoverflow dot com

Я не специалист по регулярным выражениям, и мне действительно любопытно - неужели такое запутывание действительно усложняет автоматический сбор урожая? Действительно ли намного сложнее автоматически идентифицировать такие запутанные адреса?

Ответы [ 12 ]

33 голосов
/ 11 августа 2009

Определенно!

Я прочитал эту статью некоторое время назад, которая показывает, насколько эффективными (а также относительной степенью) могут быть различные методы. Обращение уже перевернутой строки в данный момент кажется довольно приличной защитой.

Следующий пример кода:

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

<p><span class="codedirection">moc.etalllit@7raboofnavlis</span></p>

Выводит письмо, чтобы оно было читабельным, по крайней мере.

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

10 голосов
/ 11 августа 2009

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

Обфускация Javascript, похоже, хвалят, но это не серебряная пуля: сегодня не так сложно автоматизировать браузер для прослушивания электронной почты. Если его можно отобразить в браузере, его можно собрать. Вы могли бы даже представить себе бота, который делает снимки экрана из окна браузера и использует OCR для извлечения адресов, чтобы превзойти вашу технику запутывания в миллион долларов.

В зависимости от того, где и почему вы хотите скрыть электронные письма, эти методы могут быть полезны:

  • Ограничить видимость электронной почты : вы можете скрыть электронные письма на своем сайте / форуме для анонимных пользователей, для новых пользователей (практически без активности или сообщений на сегодняшний день) или даже полностью скрыть их и заменить контакт электронной почты между участниками со встроенной функцией личных сообщений.

  • Используйте специальное письмо с фильтром спама : вы будете получать спам, но оно будет ограничено этим конкретным адресом. Это хороший компромисс, когда вам нужно предоставить адрес электронной почты любому пользователю.

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

8 голосов
/ 11 августа 2009

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

Однажды мне пришла идея опубликовать мой адрес электронной почты следующим образом:

Вы можете написать мне здесь:

string myEmail = "";
myEmail = myEmail
          .Append ("myname")
          .Append ("@")
          .Append ("domain")
          .Append (".")
          .Append ("com");

Тот, кто этого не понимает, провалил мой базовый тест интеллекта.

5 голосов
/ 11 августа 2009

Я не уверен, действительно ли это помогает при спаме, но я научился любить Escape Encode Obfuscation для mailto: tags / emails. Пример тега:

<a href="%6D%61%69%6C%74%6F%3A%74%65%61%6D%40%73%74%61%63%6B%6F%76%65%72%66%6C%6F%77%2E%63%6F%6D">&#116;&#101;&#97;&#109;&#64;&#115;&#116;&#97;&#99;&#107;&#111;&#118;&#101;&#114;&#102;&#108;&#111;&#119;&#46;&#99;&#111;&#109;</a>

Mails team@stackoverflow.com

4 голосов
/ 11 августа 2009

Это аналогично наклейке с надписью «Защищено ADT» на вашей входной двери.

Помешает ли это талантливому грабителю войти в ваш дом? Конечно нет.

Сделает ли это дом по соседству с незапертой дверью и iPod в окне более привлекательной целью? Довольно вероятно.

Простой беспрепятственный почтовый скребок получит тонны писем как есть. Может быть, стоит очень простое регулярное выражение, чтобы подобрать очень распространенные методы запутывания. Кроме того, вы тратите много времени, пытаясь расшифровать все меньший процент писем.

Все это говорит, что умное запутывание, вероятно, того стоит.

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

3 голосов
/ 07 сентября 2011

Мне было интересно, почему никто не упомянул решение ALAs .

Роэль Ван Гилс написал статью о Изящном обфускации электронной почты в 2007

Изящная электронная обфускация - это просто JavaScript-электронная обфускация техника с обратной формой контакта .

  1. Адреса электронной почты запутываются путем преобразования их в URL-адрес, указывающий на форму контакта и применения преобразования ROT13
  2. mailto:mail@example.comcontact/mail+example+comcontact/znvy+rknzcyr+pbz
  3. Через javascript contact/znvy+rknzcyr+pbz конвертируется обратно в mailto:mail@example.com
  4. Если javascript недоступен, браузер откроет contact/znvy+rknzcyr+pbz в качестве запасного варианта. Контактная форма будет знать, куда отправлять электронную почту из-за URL.

http://www.alistapart.com/articles/gracefulemailobfuscation/

1 голос
/ 24 апреля 2013

У меня есть решение, ну, скорее, теория. Проблема в том, что боты разбирают страницу. они могут получить текст. даже если это ставится в страницу каким-то изощренным способом через Javascript.

Итак, только вы CSS3 псевдоэлемент ! это не будет ссылка, но ваша электронная почта будет видна и никогда не будет фактическим текстом. как то так:

.email::after{ content:'myemail@gmail.com'; }

Опять же, это теория, я понятия не имею, как далеко могут пойти эти злые люди, чтобы получить это, но я думаю, что это довольно безопасно. (если они не анализируют CSS-файлы, что я не думаю, что они делают)

1 голос
/ 11 августа 2009

Чтобы дать буквальный ответ, да, собирать запутанные адреса сложнее, чем собирать стандартизированные адреса. Реальный вопрос заключается в том, будут ли дополнительные усилия приложены комбайнами, и если (главный? Второстепенный?) Барьер для комбайнов стоит возможных проблем для ваших пользователей.

Если вы собираетесь скремблировать адреса или иным образом переносить их из стандартной формы, вам следует избегать последовательности в том, как вы это делаете - хотя бы на одном сайте.

Например, если каждый адрес электронной почты на большом сайте сообщества перевернут в разметке и правильно отображен с помощью CSS, или заменен токеном (@ становится 'at'), или любым другим предсказуемым методом, сборщики просто напишут тонкий адаптер для вашего сайта.

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

По моему мнению, спам стал такой проблемой, и было передано так много БД, что мы не скрываем своих адресов. Вместо этого подумайте о том, чтобы взглянуть на Defensio, Akismet и т. Д., Чтобы помочь классифицировать и блокировать спам.

1 голос
/ 11 августа 2009

Как бороться со спамерами? Сделайте адрес электронной почты менее узнаваемым для чего-то без мозгов (например, компьютера).

Не говорящие по-английски ваши друзья: если ваша пользовательская база не является говорящим по-английски сообществом, переключитесь на запутывание, используя другие языки: team_małpa_stackoverlow_kropka_com или team_Affenschwanz_stackoverflow_Punkt_com - это легко узнаваемые адреса электронной почты соответственно для польско- и немецкоязычных сообществ. Некоторые харвестеры знают польский или немецкий, но есть вероятность, что большинство харвестеров будут понимать только английский.

Если вы не можете оставить английский язык, то переключитесь на несколько описательных фраз, таких как: «чтобы отправить нам сообщение, напишите команду в поле вашего адреса, чем поставьте символ AT, чем напишите название нашего сайта!».

...