Адреса электронной почты, которые публично размещены на веб-страницах в виде обычного текста, будут очень быстро собраны спам-ботами и использованы для отправки нежелательных электронных писем. Чтобы остановить или, по крайней мере, затруднить массовым почтовым службам сбор общедоступных электронных писем, мы можем использовать некоторые методы обфускации электронной почты. Защита публично отображаемых адресов электронной почты путем их запутывания может не только сократить спам, но и считается вежливым жестом.
В вашем распоряжении есть несколько методов, чтобы запутать или, другими словами, скрыть адреса электронной почты, которые размещены на общедоступных веб-страницах от спам-ботов.
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 | ; | ; | SEMICOLON |
60 | < | < | LESS-THAN SIGN |
61 | = | = | EQUALS SIGN |
62 | > | > | GREATER-THAN SIGN |
63 | ? | ? | QUESTION MARK |
64 | @ | @ | COMMERCIAL AT |
65 | A | A | LATIN CAPITAL LETTER A |
66 | B | B | LATIN CAPITAL LETTER B |
67 | C | C | LATIN CAPITAL LETTER C |
68 | D | D | LATIN CAPITAL LETTER D |
69 | E | E | LATIN CAPITAL LETTER E |
70 | F | F | LATIN CAPITAL LETTER F |
71 | G | G | LATIN CAPITAL LETTER G |
72 | H | H | LATIN CAPITAL LETTER H |
73 | I | I | LATIN CAPITAL LETTER I |
74 | J | J | LATIN CAPITAL LETTER J |
75 | K | K | LATIN CAPITAL LETTER K |
76 | L | L | LATIN CAPITAL LETTER L |
77 | M | M | LATIN CAPITAL LETTER M |
78 | N | N | LATIN CAPITAL LETTER N |
79 | O | O | LATIN CAPITAL LETTER O |
80 | P | P | LATIN CAPITAL LETTER P |
81 | Q | Q | LATIN CAPITAL LETTER Q |
82 | R | R | LATIN CAPITAL LETTER R |
83 | S | S | LATIN CAPITAL LETTER S |
84 | T | T | LATIN CAPITAL LETTER T |
85 | U | U | LATIN CAPITAL LETTER U |
86 | V | V | LATIN CAPITAL LETTER V |
87 | W | W | LATIN CAPITAL LETTER W |
88 | X | X | LATIN CAPITAL LETTER X |
89 | Y | Y | LATIN CAPITAL LETTER Y |
90 | Z | Z | LATIN CAPITAL LETTER Z |
91 | [ | [ | LEFT SQUARE BRACKET |
92 | \ | \ | REVERSE SOLIDUS |
93 | ] | ] | RIGHT SQUARE BRACKET |
94 | ^ | ^ | CIRCUMFLEX ACCENT |
95 | _ | _ | LOW LINE |
96 | ` | ` | GRAVE ACCENT |
97 | a | a | LATIN SMALL LETTER A |
98 | b | b | LATIN SMALL LETTER B |
99 | c | c | LATIN SMALL LETTER C |
100 | d | d | LATIN SMALL LETTER D |
101 | e | e | LATIN SMALL LETTER E |
102 | f | f | LATIN SMALL LETTER F |
103 | g | g | LATIN SMALL LETTER G |
104 | h | h | LATIN SMALL LETTER H |
105 | i | i | LATIN SMALL LETTER I |
106 | j | j | LATIN SMALL LETTER J |
107 | k | k | LATIN SMALL LETTER K |
108 | l | l | LATIN SMALL LETTER L |
109 | m | m | LATIN SMALL LETTER M |
110 | n | n | LATIN SMALL LETTER N |
111 | o | o | LATIN SMALL LETTER O |
112 | p | p | LATIN SMALL LETTER P |
113 | q | q | LATIN SMALL LETTER Q |
114 | r | r | LATIN SMALL LETTER R |
115 | s | s | LATIN SMALL LETTER S |
116 | t | t | LATIN SMALL LETTER T |
117 | u | u | LATIN SMALL LETTER U |
118 | v | v | LATIN SMALL LETTER V |
119 | w | w | LATIN SMALL LETTER W |
120 | x | x | LATIN SMALL LETTER X |
121 | y | y | LATIN SMALL LETTER Y |
122 | z | z | LATIN SMALL LETTER Z |
123 | { | { | LEFT CURLY BRACKET |
124 | | | | | VERTICAL LINE |
125 | } | } | RIGHT CURLY BRACKET |
126 | ~ | ~ | TILDE |
Используя эту таблицу, мы можем заменить каждый символ в [email protected] электронном письме на
nospa&#;@example.com
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, что затрудняет его реализацию.