Вопрос об обфускации электронной почты - PullRequest
5 голосов
/ 08 апреля 2009

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

В предыдущих темах говорилось, что отображение адреса электронной почты для изображения, как это делает Facebook, является излишним и непрофессиональным пользовательским опытом для деловых / профессиональных веб-сайтов. И кажется, что общий консенсус заключается в том, чтобы использовать решение JavaScript document.write с использованием html-сущностей или каким-либо другим методом, который разбивает и / или делает строку нечитаемой для простого бота. Приложение, которое я создаю, даже не нуждается в функции mailto: мне просто нужно отобразить адрес электронной почты. Кроме того, это бизнес-приложение, поэтому оно должно выглядеть / действовать максимально профессионально. Вот мои вопросы:

  1. Если я пойду по маршруту document.write и передам версию сущности html каждого символа, разве не найдутся веб-сканеры, достаточно сложные, чтобы выполнить javascript и в любом случае вытащить отрендеренный текст? Или это считается лучшей практикой и полностью (или почти полностью) защищено от спама?

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

  3. Если ваш ответ (как и в другой ветке) состоит в том, чтобы не беспокоить себя этой проблемой и позволить спам-фильтрам пользователей выполнять всю работу, пожалуйста, объясните, почему вы так себя чувствуете. Мы показываем адреса электронной почты наших пользователей, которые они нам дали, и я чувствую ответственность за то, чтобы защитить их как можно больше. Если вы считаете, что в этом нет необходимости, объясните, почему.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 08 апреля 2009
  1. Это не защита от спама. Если кто-то смотрит на код вашего сайта и определяет шаблон, который вы используете для своих адресов электронной почты, тогда можно написать специальный код, чтобы попытаться расшифровать его.

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

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

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

В настоящее время обычно работают кодеры для адресов электронной почты, поскольку большинство сборщиков почтовых ботов не собираются заниматься кодированием специально для каждого сайта. Они попытаются использовать минимальный алгоритм, который даст максимальные результаты (иначе выигрыш не стоит). Из-за этого простые кодеры победят большинство ботов. Но если кто-то ДЕЙСТВИТЕЛЬНО хочет получить доступ к электронным письмам на вашем сайте, он может и, вероятно, также легко это сделать, поскольку код, который записывает адреса, является общедоступным.

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

4 голосов
/ 08 апреля 2009

Довольно много причин, по которым Javascript на данный момент является хорошим решением (которое может измениться по мере развития ландшафта).

  • Обфускация Javascript - лучшая ловушка для мыши на данный момент
  • Тебе просто нужно опередить остальных. Пока есть низко висящие фрукты, спамеры пойдут на них. Так что, если все не начнут переходить на javascript, пока все в порядке, по крайней мере
  • большинство спаммеров используют сценарии на основе http, которые получают и анализируют с помощью регулярных выражений. конечно, возможно использование javascript-движка для разбора, но это замедлит работу

Что касается решения для Facebook, я не считаю его непрофессиональным, но я ясно вижу, почему пуристы могут не соглашаться.

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

Вот хороший пост в блоге, сравнивающий несколько методов с тестами.

http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/

...