• Время чтения ~4 мин
  • 10.04.2023

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

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

1. Адрес Munging

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

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

Пример: [email protected]

 no spam at example (dot) com 

Хорошо:

  • Очень прост в реализации
  • Кроссбраузерная совместимость.
  • Javascript не требуется.

Плохой:

  • Спам-ботам легко обойти.
  • Не работает со ссылкой MAILTO.
  • Не прозрачный — виден пользователям.
  • Пользователи должны сделать часть «декодирования».

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

2. Кодировка Юникод

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

Decimal Code HTML encoding Character Name
32     SPACE
33 ! ! EXCLAMATION MARK
34 " QUOTATION MARK
35 # # NUMBER SIGN
36 $ $ DOLLAR SIGN
37 % % PERCENT SIGN
38 & & AMPERSAND
39 ' APOSTROPHE
40 ( ( LEFT PARENTHESIS
41 ) ) RIGHT PARENTHESIS
42 * * ASTERISK
43 + + PLUS SIGN
44 , , COMMA
45 - HYPHEN-MINUS
46 . . FULL STOP
47 / / SOLIDUS
48 0 0 DIGIT ZERO
49 1 1 DIGIT ONE
50 2 2 DIGIT TWO
51 3 3 DIGIT THREE
52 4 4 DIGIT FOUR
53 5 5 DIGIT FIVE
54 6 6 DIGIT SIX
55 7 7 DIGIT SEVEN
56 8 8 DIGIT EIGHT
57 9 9 DIGIT NINE
58 : : COLON
59 &#59; ; SEMICOLON
60 &#60; < LESS-THAN SIGN
61 &#61; = EQUALS SIGN
62 &#62; > GREATER-THAN SIGN
63 &#63; ? QUESTION MARK
64 &#64; @ COMMERCIAL AT
65 &#65; A LATIN CAPITAL LETTER A
66 &#66; B LATIN CAPITAL LETTER B
67 &#67; C LATIN CAPITAL LETTER C
68 &#68; D LATIN CAPITAL LETTER D
69 &#69; E LATIN CAPITAL LETTER E
70 &#70; F LATIN CAPITAL LETTER F
71 &#71; G LATIN CAPITAL LETTER G
72 &#72; H LATIN CAPITAL LETTER H
73 &#73; I LATIN CAPITAL LETTER I
74 &#74; J LATIN CAPITAL LETTER J
75 &#75; K LATIN CAPITAL LETTER K
76 &#76; L LATIN CAPITAL LETTER L
77 &#77; M LATIN CAPITAL LETTER M
78 &#78; N LATIN CAPITAL LETTER N
79 &#79; O LATIN CAPITAL LETTER O
80 &#80; P LATIN CAPITAL LETTER P
81 &#81; Q LATIN CAPITAL LETTER Q
82 &#82; R LATIN CAPITAL LETTER R
83 &#83; S LATIN CAPITAL LETTER S
84 &#84; T LATIN CAPITAL LETTER T
85 &#85; U LATIN CAPITAL LETTER U
86 &#86; V LATIN CAPITAL LETTER V
87 &#87; W LATIN CAPITAL LETTER W
88 &#88; X LATIN CAPITAL LETTER X
89 &#89; Y LATIN CAPITAL LETTER Y
90 &#90; Z LATIN CAPITAL LETTER Z
91 &#91; [ LEFT SQUARE BRACKET
92 &#92; \ REVERSE SOLIDUS
93 &#93; ] RIGHT SQUARE BRACKET
94 &#94; ^ CIRCUMFLEX ACCENT
95 &#95; _ LOW LINE
96 &#96; ` GRAVE ACCENT
97 &#97; a LATIN SMALL LETTER A
98 &#98; b LATIN SMALL LETTER B
99 &#99; c LATIN SMALL LETTER C
100 &#100; d LATIN SMALL LETTER D
101 &#101; e LATIN SMALL LETTER E
102 &#102; f LATIN SMALL LETTER F
103 &#103; g LATIN SMALL LETTER G
104 &#104; h LATIN SMALL LETTER H
105 &#105; i LATIN SMALL LETTER I
106 &#106; j LATIN SMALL LETTER J
107 &#107; k LATIN SMALL LETTER K
108 &#108; l LATIN SMALL LETTER L
109 &#109; m LATIN SMALL LETTER M
110 &#110; n LATIN SMALL LETTER N
111 &#111; o LATIN SMALL LETTER O
112 &#112; p LATIN SMALL LETTER P
113 &#113; q LATIN SMALL LETTER Q
114 &#114; r LATIN SMALL LETTER R
115 &#115; s LATIN SMALL LETTER S
116 &#116; t LATIN SMALL LETTER T
117 &#117; u LATIN SMALL LETTER U
118 &#118; v LATIN SMALL LETTER V
119 &#119; w LATIN SMALL LETTER W
120 &#120; x LATIN SMALL LETTER X
121 &#121; y LATIN SMALL LETTER Y
122 &#122; z LATIN SMALL LETTER Z
123 &#123; { LEFT CURLY BRACKET
124 &#124; | VERTICAL LINE
125 &#125; } RIGHT CURLY BRACKET
126 &#126; ~ TILDE

Используя эту таблицу, мы можем заменить каждый символ в [email protected] электронном письме на

&#110;&#111;&#115;&#112;&#97;&#;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;

However a browser will convert those numbers back to their representation and display it to the users.  There are many Unicode encoders out there making it a quick an easy solution.

Хорошо:

  • Простота внедрения
  • Хорошо работает со ссылкой MAILTO.
  • Кроссбраузерная совместимость.
  • Javascript не требуется.
  • Прозрачная для пользователей.

Плохой:

  • Спам-ботам очень легко обойти.
  • Низкий уровень защиты.

Хорошо в среде, где электронная почта должна отображаться, а javascript или css не поддерживаются. Лучше, чем ничего, но в целом слишком легко обойти спам-ботов.

3. Html комментарии

В html комментарии вводятся между тегом "<!– ... –>" . Поскольку комментарии не отображаются в браузере, вы можете вставить их в адрес электронной почты, чтобы отключить спам-ботов.

Пример: [email protected]

no<!– spam –>spam<!– @ –>@<!– –>example<!– . –>.<!– spam. –>com

Хорошо:

  • Очень прост в реализации
  • Кросс-браузерная совместимость
  • Javascript не требуется.
  • Прозрачная для пользователей.

Плохой:

  • Очень легко обойти спам-ботов
  • Не работает со ссылкой MAILTO

Хорошо, если нет поддержки javascript или css. В целом этот вариант не рекомендуется, так как его слишком легко обойти.

4.CSS – свойство

content Свойство CSS "content" может использоваться с псевдоэлементами ":before" или  ":after" для вставки содержимого в HTML-элемент.

Пример: [email protected]

<style type=”text/css”>

span.email:after { content: “nospam\40example.com”; }

</style><span class=”email”></span>

This method can be more effective if included in external css file.

Хорошо:

  • Простота внедрения
  • Javascript не требуется.
  • Прозрачная для пользователей.

Плохой:

  • Не работает с IE8 или более ранней версией.

5.CSS – свойство

направления Свойство направления в CSS относится к направлению текста. Для некоторых языков, таких как иврит или арабский, направление текста справа налево (rtl), тогда как для других - слева направо (ltr). Мы можем писать адреса электронной почты в обратном порядке и вместе со свойством unicode-bidi мы можем использовать его для перезаписи и изменения направления адреса электронной почты при отображении в браузере.

Пример: [email protected]

<style type=”text/css”>

span.reverse { unicode-bidi:bidi-override; direction: rtl; }

</style><span>moc.elpmaxe@mapson</span>

As with css content property method this will be more effective when included in external stylesheet.

Хорошо:

  • Простота внедрения
  • Javascript не требуется.
  • Прозрачная для пользователей.

Плохой:

  • Не работает с IE8 или более ранней версией.

6.CSS – свойство

display Свойство display позволяет указать "none", что означает, что элемент не будет выводиться при рендеринге браузером. Имея это в виду, мы можем вставлять различные html-теги в адрес электронной почты, что затрудняет его извлечение.

Пример: [email protected]

<style type=”text/css”>

.hide { display:none; }

</style>nospam<span class=”hide”>null</span>@<p>null</p>example.com

Хорошо:

  • Простота внедрения
  • Javascript не требуется.
  • Прозрачная для пользователей.

Плохой:

  • Не работает со ссылкой MAILTO

7. Javascript

Существует несколько способов использования javascript для вывода текста, но самым простым является метод document.write(). Мы можем в основном вывести любой html или текст в браузер.

Пример: [email protected]

let s1 = “nospam”;

let s2 = “@”;

let s3 = “example.com”;

document.write(s1 + s2 + s3);

Хорошо:

  • Прозрачная для пользователей.
  • Отличный уровень запутывания.
  • Может использоваться со ссылкой MAILTO.

Плохой:

  • Требуется javascript, включенный в браузерах.
  • Некоторые редакторы WYSIWYG могут ограничивать javascript, что затрудняет его реализацию.

8. ШИФРОВАНИЕ

ROT13 Rot13 - это шифр, который основан на вращении буквенных символов на 13. Числовые и ни одного буквенного символа остаются неизменными. Поскольку в английском алфавите 26 букв, вращающиеся символы на 13 кодируют и декодируют строку. Таким образом,  в нашем тестовом электронном письме первая буква нашего электронного письма - «n», которая станет «a», поскольку мы будем считать 13 букв из «n» в алфавите по кругу.

Пример: [email protected]

function str_rot13(str) {
   return (str + ”).replace(/[a-z]/gi, function(s) {
       return String.fromCharCode(s.charCodeAt(0) + (s.toLowerCase() < ‘n’ ? 13 : -13));
   });
}

document.write(str_rot13(‘[email protected]’));

Хорошо:

  • Прозрачная для пользователей.
  • Хороший уровень запутывания.
  • Может использоваться со ссылкой MAILTO.
  • Может использоваться в чатах и форумах

Плохой:

  • Требуется javascript, включенный в браузерах для автоматического декодирования.
  • Некоторые редакторы WYSIWYG могут ограничивать javascript, что затрудняет его реализацию.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297