• Czas czytania ~7 min
  • 10.04.2023

Adresy e-mail, które są publicznie publikowane na stronach internetowych w postaci zwykłego tekstu, będą bardzo szybko zbierane przez roboty spamowe i wykorzystywane do wysyłania niechcianych wiadomości e-mail. Aby zatrzymać lub przynajmniej utrudnić masowym e-mailom zbieranie publicznie dostępnych wiadomości e-mail, możemy wykorzystać niektóre techniki zaciemniania wiadomości e-mail. Ochrona publicznie wyświetlanych adresów e-mail poprzez ich zaciemnianie może nie tylko ograniczyć spam, ale jest również uważana za uprzejmy gest.

Istnieje kilka technik do Twojej dyspozycji, aby zaciemnić lub innymi słowy ukryć adresy e-mail publikowane na publicznie dostępnych stronach internetowych przed spamerami.

1. Munging adresu e-mail Munging

adresu e-mail to forma zaciemniania, w której części adresu e-mail zostałyby zmodyfikowane w taki sposób, że nie wyglądałby już jak wiadomość e-mail, ale użytkownik końcowy (człowiek) nadal byłby w stanie go zrekonstruować.

Złożoność tego podejścia naprawdę zależy od ludzkiej kreatywności.  Niektóre z powszechnych technik polegają na zastąpieniu znaków interpunkcyjnych słowami wyświetlającymi "." jako "(kropka)" i "@" jako "at".  Inne popularne opcje to oddzielenie słów w wiadomości e-mail spacjami lub dodanie spacji między każdym znakiem, lub nawet odwrócenie całego adresu e-mail.

Przykład: [email protected]

 no spam at example (dot) com 

:

  • Bardzo łatwy do wdrożenia
  • Kompatybilny z różnymi przeglądarkami.
  • JavaScript nie jest wymagany.

Zły:

  • Łatwe do obejścia przez boty spamowe.
  • Nie działa z linkiem MAILTO.
  • Nieprzezroczyste — widoczne dla użytkowników.
  • Użytkownicy muszą wykonać część "dekodowania".

Czasami jest to jedyny sposób na zaciemnienie wiadomości e-mail na czatach lub komentarzach do artykułów, ale nie zaleca się używania go na stronach internetowych.

2. Kodowanie

Unicode W istocie Unicode jest tabelą liczb dla każdej litery lub znaku, niezależnie od języka, platformy lub oprogramowania. Każdy znak ma przypisany kod, więc pomysł polega na zastąpieniu widocznych znaków odpowiadającymi im liczbami z tabeli Unicode.   Poniżej znajduje się podstawowa tabela z najczęstszymi znakami (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

Korzystając z tej tabeli, możemy zastąpić każdy znak w e-mailu [email protected] dobrem

&#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.

:

  • Łatwość wdrożenia
  • Działa dobrze z linkiem MAILTO.
  • Kompatybilny z różnymi przeglądarkami.
  • JavaScript nie jest wymagany.
  • Niewidoczny dla użytkowników.

Zły:

  • Bardzo łatwe do obejścia przez boty spamowe.
  • Niski poziom ochrony.

Dobry w środowisku, w którym e-mail musi być wyświetlany, a javascript lub css nie jest obsługiwany. Lepsze to niż nic, ale ogólnie zbyt łatwe do obejścia przez boty spamowe.

3. Komentarze

HTML W html komentarze są wprowadzane między znacznikiem "<!– ... –>".  Ponieważ komentarze nie są renderowane w przeglądarce, możesz wtrącić je na adres e-mail, aby wyrzucić spamerów.

Przykład: [email protected]

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

:

  • Bardzo łatwy do wdrożenia
  • Kompatybilny z różnymi przeglądarkami
  • JavaScript nie jest wymagany.
  • Niewidoczny dla użytkowników.

Zły:

  • Bardzo łatwe do obejścia przez boty spamowe
  • Nie działa z linkiem MAILTO

Dobrze, jeśli nie ma obsługiwanego javascript lub css. Ogólnie rzecz biorąc, ta opcja nie jest zalecana, ponieważ jest zbyt łatwa do obejścia.

4.CSS – właściwość

content Właściwość CSS "content" może być używana z pseudoelementami ":before" lub  ":after" do wstawiania treści do elementu HTML.

Przykład: [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.

:

  • Łatwość wdrożenia
  • JavaScript nie jest wymagany.
  • Niewidoczny dla użytkowników.

Zły:

  • Nie działa z IE8 lub starszym.

5.CSS – właściwość

direction Właściwość direction w CSS odnosi się do kierunku tekstu. W niektórych językach, takich jak hebrajski lub arabski, kierunek tekstu to od prawej do lewej (rtl), podczas gdy w innych jest od lewej do prawej (ltr). Możemy pisać adresy e-mail w odwrotnej kolejności i wraz z właściwością Unicode-bidi możemy ją wykorzystać do nadpisania i zmiany kierunku adresu e-mail podczas renderowania w przeglądarce.

Przykład: [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.

:

  • Łatwość wdrożenia
  • JavaScript nie jest wymagany.
  • Niewidoczny dla użytkowników.

Zły:

  • Nie działa z IE8 lub starszym.

6.CSS – właściwość

display Właściwość display umożliwia określenie "none", co oznacza, że element nie zostanie wyprowadzony podczas renderowania przez przeglądarkę. Mając to na uwadze, możemy wstrzykiwać różne tagi html do adresu e-mail, co utrudnia jego wyodrębnienie.

Przykład: [email protected]

<style type=”text/css”>

.hide { display:none; }

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

:

  • Łatwość wdrożenia
  • JavaScript nie jest wymagany.
  • Niewidoczny dla użytkowników.

Zły:

  • Nie działa z linkiem MAILTO

7. JavaScript

Istnieje wiele sposobów użycia javascript do wyprowadzania tekstu, ale najłatwiejszą jest metoda document.write(). Możemy w zasadzie wyprowadzić dowolny kod html lub tekst do przeglądarki.

Przykład: [email protected]

let s1 = “nospam”;

let s2 = “@”;

let s3 = “example.com”;

document.write(s1 + s2 + s3);

:

  • Niewidoczny dla użytkowników.
  • Doskonały poziom zaciemnienia.
  • Może być używany z linkiem MAILTO.

Zły:

  • Wymaga włączonej obsługi JavaScript w przeglądarkach.
  • Niektóre edytory WYSIWYG mogą ograniczać javascript, co utrudnia jego implementację.

8. Szyfrowanie

ROT13 Rot13to szyfr oparty na rotacji znaków alfabetycznych o 13. Znaki numeryczne i brak znaków alfabetycznych pozostają niezmienione. Ponieważ w alfabecie angielskim jest 26 liter, obracanie znaków o 13 koduje i dekoduje ciąg . Tak więc w naszym testowym e-mailu pierwszą literą naszego e-maila jest "n", które stałoby się "a", ponieważ policzylibyśmy 13 liter z "n" w alfabecie w kółku.

Przykład: [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]’));

:

  • Niewidoczny dla użytkowników.
  • Dobry poziom zaciemnienia.
  • Może być używany z linkiem MAILTO.
  • Może być używany na czatach i forach

Zły:

  • Wymaga włączonej obsługi JavaScript w przeglądarkach do automatycznego dekodowania.
  • Niektóre edytory WYSIWYG mogą ograniczać javascript, co utrudnia jego implementację.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297