Найкращий спосіб приховати електронну адресу на веб-сайті?


136

Я провів останні кілька днів, працюючи над оновленням особистого веб-сайту. URL-адреса мого особистого веб-сайту - це (моє ім’я). (Моє прізвище) .com, оскільки моє прізвище досить незвичне, і мені пощастило підібрати доменне ім’я. Моя адреса електронної пошти (моє ім’я) @ (моє прізвище) .com Тож справді, коли доводиться здогадуватися, це не дуже важко.

У будь-якому випадку я хочу інтегрувати посилання mailto: у свій веб-сайт, щоб люди могли зв’язатися зі мною. І, незважаючи на те, що мою адресу електронної пошти не дуже важко здогадатися, я, швидше за все, не отримав би її спам-ботами, які просто сканують веб-сайти для моделей адрес електронної пошти та додають їх у свою базу даних.

Що є найкращим способом приховати мою електронну адресу, бажано у формі посилання? Мені відомі методи:

<a href="mailto:x@y.com">e-mail me</a>

Це працює, але це також означає, що як тільки мій веб-сайт потрапить на Google, я перейду спамом, оскільки спам-боти легко виберуть свою адресу електронної пошти.

<img src="images/e-mail.png" />

Це менш бажано, тому що не тільки відвідувачі не зможуть натиснути на нього, щоб надіслати мені електронний лист, але розумніші спам-боти, ймовірно, зможуть виявити символів, які містить зображення.

Я знаю, що ідеального рішення, мабуть, немає, але мені було просто цікаво, що всі вважають найкращим. Я, безумовно, готовий використовувати JavaScript при необхідності, оскільки мій веб-сайт вже використовує багато тонн.


10
Надішліть повідомлення на свій рахунок GMail. ;-)
Дейв Джарвіс


Ця публікація має бути пов’язана тут.
Clément

Відповіді:


106

Я кодую символи як HTML-об'єкти ( щось подібне ). Він не вимагає включення JS і, здається, зупинив більшу частину спаму. Я думаю, розумний бот може все-таки зібрати його, але у мене не було жодних проблем.


6
Це зупиняє найпростіший вид збирання спам-файлів (регулярний вираз шукає будь-який текст, що нагадує та адресу електронної пошти), і не має недоліків: він такий же зручний для кінцевого користувача, як і посилання explict href = mailto: xxx @ yy.
Стівен К. Сталь

5
Це працює досить добре, тому що багато (більшість?) Гусениць / комбайнів неймовірно дурні.
Жакко

43
Відповідно до цього емпіричного дослідження 2008 року , кодування URL було найменш ефективним. Лише звичайний текст був гірший.
Фурманатор

16
Я знаю, що це пізно, але варто зазначити, що тут пропонується використовувати HTML-об'єкти, які відрізняються від кодування URL-адрес. Згідно з цим дослідженням, використання об'єктів для періодів @ та другого періоду було другим найефективнішим методом (найбільш ефективним було три способи, пов’язані з першим, що призвело до 0 спам-повідомлень). Було б цікаво побачити, чи це все ще триває майже 6 років.
Бейлі Паркер

12
Я вважаю іронічним, що для захисту електронної пошти вам потрібно ввести її у випадкову, тінисту форму на веб-сайті, до якого ви пов’язані. Хлібопічка, хтось? :)
srobinson

84

Особисто я відмовився від приховування своєї електронної адреси. Мені легше шукати рішення, які краще фільтрують спам, ніж турбуватися про примхливість. Ви можете витратити дні, намагаючись знайти найкращий спосіб приховати свою адресу, і тоді все, що потрібно, - одна людина, щоб продати свою адресу спамеру, і все це було марно.


Незалежно від того, наскільки хороша фільтрація вашої спаму, неправдиві негативні негативні повідомлення (листи, які проходять через це, не повинні). Зрештою, вам доведеться жити з адресою електронної пошти, але, схоже, такий вид непотрібного впливу може збільшити повторність появи спаму.
Бред Баркер

8
@Brad в моєму досвіді цього не було. Я використовую розміщену в Google пошту для своїх доменів, а електронну адресу знайти дуже просто. У мене було 0 помилкових негативів та 1 хибний позитив, оскільки я почав використовувати його більше 14 місяців тому. Щодня я отримую кілька сотень спамів у своїй папці зі спамом.
Rex M

8
Е, я додам: спам - це не підман, який їсть ваших дітей. Отримання незвичайного спаму - це не кінець світу. Клацніть "Повідомити про спам" та рухайтесь далі.
безглазкість

1
@Brad: Якщо це непотрібно, взагалі не вказуйте свою адресу. Якщо потрібно вказати свою адресу, приготуйтеся до спаму. Ви не можете полегшити людині повідомлення електронною поштою, не спростивши спамботу зробити це легко.
Чак

1
Я просто розміщую мій електронний лист також без уваги. Я використовую gmail, і фільтр спаму, здається, працює надзвичайно добре.
Асмор

68

Поточне прийняте рішення - створити контактну форму, яка дозволяє користувачам надсилати вам електронну пошту. Якщо ви отримаєте багато спаму від цього (я не на своєму веб-сайті), тоді ви можете додати капчу для гарної міри, і ви будете далеко від "низько висячих фруктів" в цьому пункті.

Справа в тому, що якщо ви надаєте посилання, на яке користувач може натиснути, щоб відкрити свій клієнт електронної пошти з вашою адресою в полі Кому:, комп'ютер може розшифрувати адресу електронної пошти зі сторінки, і так можна спам-бот.


2
Тобто логіка надсилання електронного листа повинна бути записана у прихованому коді на стороні сервера, щоб адреса ніколи не була оприлюднена.
JoshJordan

8
Хоча це технічне рішення, але технічно це рішення, яке відштовхується від багатьох користувачів. Просто говорю'.
безвічність

Ви абсолютно праві, але я ніколи не розумів, чому. Щонайбільше, ви знаходитесь за один клік від веб-форми, так само, як ви б мінімум із клієнтом електронної пошти. Єдине, що додає труднощів, - це додаткова капчча. Якщо користувач не може через це зв’язатися з вами, чи важливим було їхнє повідомлення?
JoshJordan

15
Мені завжди подобається, коли є можливість передати вам повідомлення. Єдине, що мене турбує щодо форм контактів, це те, що він не залишає записів у моїй власній системі електронної пошти. (Хоча форма, в якій можуть створюватися CC-адреси будь-якої адреси електронної пошти, це власний набір проблем.)
Сем Хаслер,

6
Також немає ознак того, що форма електронної пошти насправді працювала. Я бачив занадто багато тих, хто був мовчки зламаний. Принаймні відштовхуються справжні електронні листи.
Брайан Карпер

44

Ви згадали про це для вашого особистого веб-сайту. На моєму особистому веб-сайті (наприклад, bobsomers.com) у мене є лише абзац, який говорить про це:

Найкращий спосіб зв’язатися зі мною до того, як новий веб-сайт стане, - надіслати мені електронний лист. Моя адреса електронної пошти - це моє ім’я на цьому веб-сайті. Якщо ви не можете зрозуміти це з натяку, ну, ви можете знайти електронну пошту більше, ніж виклик моєї адреси.

Люди, здається, здатні зрозуміти це просто чудово, тому що я постійно отримую законне повідомлення електронної пошти. Іноді найкращі рішення не вимагають написання коду. :)


7
Цей метод також фільтрує людей з IQ нижче певного рівня: D
papa zulu

36

reCAPTCHA пропонує просту послугу обфускування електронною поштою . Вам не потрібно створювати обліковий запис, і ви можете розпочати його використання негайно. Ви можете використовувати послугу як посилання або як спливаюче вікно.

Після вирішення функції captcha ваша електронна адреса відображається як href / mailto, щоб її могли натискати / слідувати користувачі, які налаштували своїх клієнтів електронної пошти для роботи зі своїми браузерами.


це чудово і буде працювати 99,9% часу. Дякуємо за посилання на. Він не вийде, коли бот автоматизує браузер.
IEnumerator

9
Я не думаю, що більшість користувачів Інтернету докладуть зусиль для вирішення капчу лише для того, щоб когось надіслати електронною поштою.
AndyM

7
Я з Енді з цього приводу. CAPTCHA - це біль, а reCAPTCHA - ще більший біль, ніж середній, оскільки їх часто важко читати. Якщо люди, надіслані вам по електронній пошті, є пунктом конверсії (наприклад, дозволяють клієнтам запитувати про послуги, замовляти або запитувати пропозицію), ви дійсно хочете зробити це якомога простішим для них.
Сільвердраг

8
Послуга вже не існує.
sorin

Google Mailhide припинено з 31 березня 2018 року.
sean

18

Легкий спосіб притуплення hrefякоря - це кодувати його6464:

> btoa('mailto:email@example.com')
< "bWFpbHRvOmVtYWlsQGV4YW1wbGUuY29t"

А потім включіть його в жорсткий код:

<a href="javascript:window.location.href=atob('bWFpbHRvOmVtYWlsQGV4YW1wbGUuY29t')">E-Mail</a>

Або динамічно на стороні сервера, наприклад, на PHP:

<a href="javascript:window.location.href=atob('<?= base64_encode("mailto:email@example.com") ?>')">E-Mail</a>

У поєднанні з реверсією рядків це може бути досить спам:

<a href="javascript:window.location.href=atob('<?= base64_encode("mailto:email@example.com") ?>')" style="unicode-bidi: bidi-override; direction: rtl;"><?= strrev("email@example.com") ?></a>

14

Мабуть, використання CSS для зміни напрямку тексту працює досить добре. Ця посилання також перевіряє купу інших методів обфускування.

Що б ви не використовували, це неминуче зазнає поразки. Ваша основна мета повинна бути уникнути роздратування ваших користувачів.


4
Це може заповнити копію та вставити? IIRC
alex

7
Коли адресу буде скопійовано, вона відобразиться назад. Користувачам це може бути недорогим, якщо ви хочете, щоб це було якомога легше з вами зв’язатися.
Крістіан Давен

10

Тут не використовуйте жодних методів обфускування, оскільки це, мабуть, перше місце, на яке будуть дивитись комбайни електронної пошти, щоб дізнатись, як люди обробляють електронні листи. Якщо ви маєте бачити свою електронну адресу на сайті, не просто копіюйте дослівно чужий метод; закрийте його унікальним способом, який не використовував жоден інший сайт, щоб ваш метод не був відомий комбайнам, перш ніж вони відвідають ваш сайт.


8
Як дуже рекурсивно.
Пол Томблін

Unniloct: Відповідь Сема Хаслера застосовується незалежно від того, яка головна відповідь. Виконуючи найпопулярнішу техніку обфускування, ви збираєтеся з найбільш ймовірною метою збирання врожаю.
безглазкість

Якщо тільки головна відповідь - не використовувати фактично
обфускування

@JoshJordan: погодився, я фактично проголосував за твою відповідь. Моя думка полягала в тому, що будь-яку популярну техніку обфускування зрештою помітять спамери, і вони напишуть код, щоб знешкодити її.
Сем Хаслер

2
Наразі ця сторінка є 28-м результатом, повернутим Google за [притуплюючу адресу електронної пошти], хоча я сподіваюся, що вона з часом зросте вище.
Сем Хаслер

8

Ви можете зробити так, як Google це робить у коді Google (і групах). Відобразити частину електронної пошти та частину, на яку можна натиснути ("..."). Клацнувши, що вказує на те, що ви хочете знати електронну пошту, і вас попросять заповнити капчу. Після цього електронний лист (та інші?) Бачать вас.


8

міна насправді проста:

<h3 id="email">hello@gmail.com</h3><!-- add a fake email -->


    $(document).ready(function(){
//my email in reverse :)
            var s = 'moc.elibomajninbew@htiek';
            var e = s.split("").reverse().join("");
            $('#email').html('<a href="mailto:'+e+'">'+e+'</a>');
    });

9
бідний хлопець, якому належить hello@gmail.com :)
duedl0r

2
У Gmail немає електронних листів із 5 символами.
Пауло Ней

6

Я використовую обфускування JavaScript, погляньте на приклад, наприклад:

http://www.jottings.com/obfuscator/


2
-1: Ви подивилися на код, який він створює? Він фактично не приховує вашу адресу електронної пошти, якщо ви включите її до "тексту посилання", а її призначення відповідає "mailto:". Гірше, що це рішення, яке вимагає Javascript, на який не слід покладатися на основний вміст.
безглазкість

6

Один веб-сайт, який я підтримую, використовує дещо спрощені засоби JavaScript (сподіваємось), щоб запобігти спам-ботам.

Посилання електронної пошти викликають функцію JS:

функція sendEmail (ім'я, домен) {
    location.href = 'mailto:' + ім'я + '@' + домен;
}

Щоб переконатися, що лише користувачі, у яких включений JS, можуть бачити посилання, випишіть їх за допомогою цього:

функція writeEmailLink (realName, ім'я, домен) {
    document.write ('<a href = "javascript: sendEmail (\' '
      + ім'я + '\', \ '' + домен + '\') ">");
    document.write (realName);
    document.write ('</a>');
}   

Використання однієї функції JS для запису посилання, що викликає інше, означає, що є два шари захисту.


4

Як сказаний вище плакат, я також використовую обфускування JavaScript від веб-сайту .

Веб-сторінка генерує деякий JavaScript, який можна вдосконалити. mailto:Текстовий рядок в незашифрованому вигляді і ідентифікувати роботами (які могли б виявити це і розплутування цього рядка), але якщо хто -то входить в jottings.com веб - сторінці адреса електронної пошти форми mailto:addr@site.tldзамістьaddr@site.tld а потім видаляє текстmailto:згенерованого JavaScript зненацька з’являється якийсь JavaScript, який зовсім не схожий на те, що він взагалі має щось спільне з електронною поштою - просто випадковий JavaScript, веб-якого наповнене. Можна ще вдосконалити це, позбувшись посилання на текст посилання - я замінив моє зображення своєю електронною адресою, що має досить неясний шрифт. Тоді про всяк випадок, коли цей метод на jottings.com стає популярним, я рандомізував імена змінних у вихідному JavaScript, щоб роботові було важко помітити екземпляр генерованого коду JavaScript.

Очевидно, що деякі з цих удосконалень можуть бути вбудовані в механізм самого запису, а оскільки код відкрито доступний, це було б досить просто.

Приклад може зробити це трохи більш зрозумілим. Я використовував Obfuscator Jottings за вищезазначеним посиланням, щоб затемнити mailto:foo@bar.com(зауважте, що я обманюю оригінальний намір веб-сайту за допомогою введення тексту, вводячи mailto:foo@bar.comзамість нього рядок foo@bar.com) з текстом "Надіслати мені електронну пошту", який вказівки перетворився на цей Javascript:

<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption key feature by Andrew Moulden, Site Engineering Ltd
// This code is freeware provided these four comment lines remain intact
// A wizard to generate this code is at http://www.jottings.com/obfuscator/
{ coded = "3A1OTJ:rJJ@VAK.GJ3"
  key = "J0K94NR2SXLupIGqVwt8EZlhznemfaPjs7QvTB6iOyWYo3rAk5FHMdxCg1cDbU"
  shift=coded.length
  link=""
  for (i=0; i<coded.length; i++) {
    if (key.indexOf(coded.charAt(i))==-1) {
      ltr = coded.charAt(i)
      link += (ltr)
    }
    else { 
      ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
      link += (key.charAt(ltr))
    }
  }
document.write("<a href='mailto:"+link+"'>Send Me Email</a>")
}
//-->
</script><noscript>Sorry, you need Javascript on to email me.</noscript>

Після повернення цього тексту я вставляю його в редактор і:

  1. видалити mailto:
  2. замініть текст посилання на вказівник на зображення моєї електронної адреси
  3. перейменуйте всі змінні
  4. замініть розділ "nocript" іншим посиланням на зображення адреси електронної пошти

Я закінчую це:

<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption kkeoy feature by Andrew Moulden, Site Engineering Ltd
// This kudzu is freeware provided these four comment lines remain intact
// A wizard to generate this kudzu is at http://www.jottings.com/obfuscator/
{ kudzu = "3A1OTJ:rJJ@VAK.GJ3"
  kkeoy = "J0K94NR2SXLupIGqVwt8EZlhznemfaPjs7QvTB6iOyWYo3rAk5FHMdxCg1cDbU"
  shift=kudzu.length
  klonk=""
  for (variter=0; variter<kudzu.length; variter++) {
    if (kkeoy.indexOf(kudzu.charAt(variter))==-1) {
      lutu = kudzu.charAt(variter)
      klonk += (lutu)
    }
    else {
      lutu = (kkeoy.indexOf(kudzu.charAt(variter))-shift+kkeoy.length) % kkeoy.length
      klonk += (kkeoy.charAt(lutu))
    }
  }
document.write("<a href='"+klonk+"'><img src='contactaddressimage.png' alt='Send Me Email' border='0' height='62' width='240'></a>")
}
//-->
</script>
<noscript>
    <img src="contactaddressimage.png" border="0" height="62" width="240">
    <font face="Arial" size="3"><br>&nbsp;</font></p>
</noscript>

3

Я не так добре працював би. Ви не можете залишити свою електронну адресу та змусити її завантажуватися за допомогою дзвінка AJAX, коли сторінка закінчується завантаженням. Не впевнені, що спам-боти можуть забрати змінений HTML або вони достатньо розумні, щоб слухати інші трафіки HTTP, щоб спробувати вибрати адреси електронної пошти або якщо вони просто сканують сторінку, коли вона отримана вперше.


Час, витрачений на реалізацію завантаження електронної пошти AJAX: 3 дні. Час, збережений у спамі, не потрібно видаляти: 17 хвилин.

2

Один хлопець випробував дев'ять різних способів представлення електронної адреси на сторінці, а потім опублікував результати у своєму блозі.

Його три найкращі способи:

  1. Зміна напрямку коду за допомогою CSS
  2. Використання CSS-дисплея: немає
  3. ROT13 Шифрування

Caveat - це було розміщено два роки тому. Спам-боти, можливо, стали розумнішими.


1

Якщо ви працюєте з PHP, ви можете взяти безкоштовний скрипт, який робить це автоматично. Це називається "Приватний тато", і ми використовуємо його для власного онлайн-сервісу потокового аудіо. Всього один рядок коду, і він працює з коробки ... Ви можете захопити його тут


Мені хотілося б знати, чому хтось спротив це. Було б корисно пояснити.
Янніс Дран

1

Іншим підходом може бути використання рамки JavaScript та прив'язування даних / моделі до елементів HTML. У випадку з AngularJS елементи HTML записуються як:

<a href="mailto:{{contactEmail}}"><span>{{contactEmail}}</span></a>

Інтерполяція {{data}} прив'язка використовує змінну області, що містить фактичне значення електронної пошти. Крім того, також може бути використаний фільтр, який обробляє розшифровку електронної пошти наступним чином:

<a href="mailto:{{contactEmail | decode}}"><span>{{contactEmail | decode}}</span></a>

Переваги полягають у тому, як написано HTML. Недоліком є ​​те, що для нього потрібна сценарна підтримка, яка для деяких може бути "ні".

просто інший підхід.


1

Використовуючи JQuery, але при необхідності легко переноситься на звичайний JS. Візьме наступний HTML-блок. Цей приклад, який я надав, також стосується tel:посилань для телефонних дзвінків.

<a class="obfuscate" 
 href="mailto:archie...trajano...net">
 archie...trajano...net
</a>
<a class="obfuscate"
 href="tel:+One FourOneSix-EightFiveSix-SixSixFiveFive">
 FourOneSix-EightFiveSix-SixSixFiveFive
</a>

і конвертувати його у відповідні посилання за допомогою Javascript.

$ (". obfuscate"). every (function () {

$ (це) .html ($ (це) .html ()
.replace ("...", "@"). Замінити (/\.\.\./ g, ".")
.замінити (/ Один / г, "1")
.замінити (/ Два / г, "2")
.замінити (/ три / г, "3")
.замінити (/ Чотири / г, "4")
.замінити (/ П'ять / г, "5")
.замінити (/ Шість / г, "6")
.замінити (/ сім / г, "7")
.замінити (/ вісім / г, "8")
.замінити (/ Дев'ять / г, "9")
.замінити (/ нуль / г, "0"))

$ (this) .attr ("href", $ (this) .attr ("href")
.replace ("...", "@"). Замінити (/\.\.\./ g, ".")
.замінити (/ Один / г, "1")
.замінити (/ Два / г, "2")
.замінити (/ три / г, "3")
.замінити (/ Чотири / г, "4")
.замінити (/ П'ять / г, "5")
.замінити (/ Шість / г, "6")
.замінити (/ сім / г, "7")
.замінити (/ вісім / г, "8")
.замінити (/ Дев'ять / г, "9")
.замінити (/ нуль / г, "0"))

})

Я детальніше це задокументував тут https://trajano.net/2017/01/1/obfuscating-mailto-links/

Алгоритм де / обфускування досить простий, тому його не надто оподатковувати писати (не потрібно аналізувати base64)


1

Рішення Ajax для виклику

Найкраще - мати форму на веб-сайті і не показувати адресу електронної пошти, тому що всі роботи з кожним днем ​​розумніші, але якщо вам потрібно показати електронну адресу на веб-сайті, ви можете зробити це за допомогою дзвінка ajax на своєму сервер і показувати його при натисканні.

HTML

<a class="obfmail" href="#" rel="info">click here to show email address</a>

або

<a class="obfmail" href="#" rel="info">
    <img src="img/click-to-show-email.jpg">
</a>

jQuery

$(document).one'click', '.obfmail', function(e) {
    e.preventDefault();
    a = $(this);
    addr = a.attr('rel');
    $.ajax({
        data: { 
            email: addr
        },
        url : "/a/getemail",
        type: "POST",
        dataType: 'json',
        success: function(data) {
            a.html(data.addr);
            a.attr('href', 'mailto:' + data.addr);
        }
    });
});

PHP

if($_POST['email']) {
    ...
    return json_encode(array(
        code     => '200',
        response => 'success',
        addr     => 'info@domain.ltd'
    ));
}

Для більшої безпеки, ви можете змінити з .onдопомогою .oneтак$(document).one('click', '.obfmail', function(e) { чи навіть роботою з PHP згенеровані лексемами, що передається в дані по AJAX виклику, щоб приймати тільки один виклик функції Ajax , як це:

html: <a class="obfmail" href="#" rel="info" token="w3487ghdr6rc">

jquery:

...
addr = a.attr('rel');
tkn  = a.attr('token');
$.ajax({
    data: { 
        email: addr,
        token: tkn
    }, ...

.

Можна також кодувати повернуту електронну адресу або інвертувати її.

.

Працює чудово і для телефонних номерів!


0

Чесно кажучи, ваша проблема може бути суперечливою, якщо ви поставили запитання про те, чи справді поштовий сервіс ви хочете використовувати. Багато людей, які використовують, наприклад, веб-пошту або не мають належного налаштування поштового клієнта у своєму браузері, не користуються поштою. Ви виставляєте свою адресу електронної пошти для функції, яка не працює для значної частини користувачів.

Замість цього ви можете скористатись формою для надсилання електронної пошти за лаштунками, щоб адреса електронної пошти була прихованою, і вам не доведеться турбуватися про бідних соків, котрі не отримають користі від пошти.


0

Якщо ви скажете на своєму сайті, що "Моя адреса електронної пошти - це (моє ім'я) @ (моє прізвище) .com." ти збираєшся дістати.


чи дійсно не використовуються круглі дужки в повноцінних електронних листах? видається, що це може бути дійсною адресою електронної пошти. : p
Kzqai

1
Це ще одна причина, коли спам-боти пропустять вашу поштову скриньку. :-)
Дін J

0

Якщо хтось використовує Rails, він може скористатися actionview-encoded_mail_toдорогоцінним каменем. ( https://github.com/reed/actionview-encoded_mail_to )

Є кілька варіантів:

: encode - Цей ключ прийме рядки "javascript" або "hex". Передача "javascript" динамічно створюватиме та кодуватиме посилання для поштового зв’язку, а потім підводитиме його до DOM сторінки. Цей спосіб не відображатиме посилання на сторінці, якщо у користувача відключений JavaScript. Після передачі "hex" шестигранний код буде кодувати email_address перед виведенням посилання mailto.

: substitu_at - коли ім'я посилання не вказано, адреса електронної пошти використовується для позначки посилання. Ви можете скористатися цією опцією, щоб придушити адресу електронної пошти, замінивши знак @ рядком, вказаним як значення.

: substitu_dot - коли ім'я посилання не вказано, адреса електронної пошти використовується для мітки посилання. Ви можете використовувати цю опцію для приховування адреси електронної пошти, замінивши її. в електронному листі з рядком, вказаним як значення.


0
<!-- Multi-Email Obfuscator  -->
<!-- step 1: &#064; = @  -->
<!-- step 2: a scrap element  -->
<!-- step 3: ROT13 encode for .com  -->
info<!-- step 1 -->&#064;<!-- step 2 --><b style="display:none">my</b>domain<!-- step 3 --><script>document.write(".pbz".replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);}));</script>


0

Оскільки це рішення ніде не згадується, але добре працює для мене:

Я роблю це:

  • створити поштове посилання з підробленою електронною поштою. Мені подобається admin@localhost.localdomain з очевидних причин: Спамер може спамувати власний ботнет при використанні цієї адреси без перевірки.

  • справжню адресу електронної пошти cypher і помістіть її у незв'язаний, але виправданий прихований проміжок або будь-який елемент, який вам подобається. Очевидно, щоб придушити електронну пошту і сховати її від комбайна. Залежно від вашої структури проекту, ви можете навіть поставити його в змінну JS або Session.

  • створіть оброблювач кліків для цих посилань через секунду, що дешифрує, і запишіть правильну адресу електронної пошти у підроблену посилання для поштових зв’язків, не запобігаючи налаштуванням за замовчуванням. Я не думаю, що сканери натискають на посилання для поштових посилань, але, якщо вони будуть, вони, ймовірно, не зачекають секунди, тоді як людині доведеться надзвичайно швидко натиснути посилання в першу секунду після завантаження сторінки.

Тепер у вас є повністю функціональне, але затуманене, затоплене медом і поважне поштове посилання.

Робочий приклад php-файлу:

<html>
<head>
<title>E-Mail Obfuscating</title>
</head>
<body>
<?php
$email = "example@email.org";
echo "<a class='emailLink' href='mailto:admin@localhost.localdomain' >Send me an e-mail!</a>"
    ."<span style='display:none' data-hash='" . base64_encode($email) . "' />";
?>
<script>
<!--
var emailLinks = document.getElementsByClassName("emailLink");
setTimeout(function() {
    for(var i=0; i <emailLinks.length; ++i){
        emailLinks[i].addEventListener("click", function(){
            let encodedEmail = this.nextSibling.getAttribute('data-hash');
            let decodedEmail = atob(encodedEmail);
            this.href = "mailto:" + decodedEmail;
            this.text = decodedEmail;
        });
    }
}, 1000);

-->
</script>
</body>
</html>

Нехай код буде з вами.


0

Що робити, якщо створити посилання "Зв'яжіться зі мною", що вказує на каталог, захищений паролем? Звичайно, ви повинні дати пропуск для доступу.

"Зв'яжіться зі мною"> •••••••••••> contact / index.html

Після доступу до сторінки contact / index.html розкривається електронна пошта, наприклад, поштове повідомлення.


-1

Я використовую функцію PHP для створення деякого javascript для виводу електронної пошти при завантаженні сторінки. Зауважте, що вам не потрібен PHP для генерації JS під час виконання, ви можете створити JS один раз на локальному рівні, а потім включити статичний JS на свою сторінку.

Ви також можете використовувати пов’язану функцію за допомогою цього фрагмента нижче, щоб автоматично обмежувати адреси електронної пошти в деяких HTML (де $ обработанный содержание - HTML):

 $emailMatches = array();
 $matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);

 if($matchCount > 0) {
    $emailMatches = $emailMatches[0];

    foreach($emailMatches as $email) {
    $replacement = createJSMailLink($email);

    $processedContent = str_replace($email, createJSMailLink($email), $processedContent);
 }

де ви визначили createJSMailLink ()?
Стеліан

-2

Перевірте це .

Форма "Енкодер" зашифрує вашу адресу електронної пошти та перетворить результат на самооцінюючий JavaScript, приховавши його від роботів, що збирають електронну пошту, які сканують Інтернет, шукаючи відкриті адреси. Ваша адреса буде відображатися правильно веб-браузерами, але буде практично нерозбірлива для роботів, що збирають електронну пошту.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.