• Час читання ~7 хв
  • 10.04.2023

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

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

1. Адреса Мунгінг

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

Складність такого підходу дійсно залежить від творчості людини.  Деякі з поширених прийомів полягають у заміні розділових знаків словами, що відображають "." як "(крапка)" та "@" як "at".  Інші популярні варіанти - розділити слова в електронному листі пробілами або, можливо, додати пробіл між кожним символом, або навіть змінивши всю адресу електронної пошти.

Приклад: [email protected]

 no spam at example (dot) com 

Добре:

  • Дуже легко реалізувати
  • Кросбраузерність сумісна.
  • JavaScript не потрібен.

Поганий:

  • Спам-ботам легко обійти.
  • Не працює з посиланням MAILTO.
  • Непрозорий – видимий для користувачів.
  • Користувачам доводиться робити частину «розшифровки».

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

2. Кодування

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

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

(ASCII). Використовуючи цю таблицю, ми можемо замінити кожен символ у [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 – властивість вмісту Властивість

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 – властивість direction Властивість

direction в 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