• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ochrona adresów e-mail widniejących na stronach www

Object Storage Arubacloud
+1 głos
865 wizyt
pytanie zadane 7 maja 2017 w JavaScript przez Tomek Sochacki Ekspert (227,510 p.)

Witam,

tak się dzisiaj zastanawiałem w ramach małego oderwania od kodowania pewnej upierdliwej aplikacji nad tematyką zabezpieczania adresów e-mail podawanych na stronach www.

Trochę poczytałem sobie jak proponują to robić inny i trafiłem na 3 rozwiązania:

  1. Zakodowanie ciągu "mailto:adres@domena.pl" encjami HTML
  2. odwrócenie tekstu z poziomu CSS (właściwość content, unicode-bidi, direction) + sposób z display:none i w JS zmiana na display:block
  3. jako obrazek...

Tak się tylko zastanawiam, czy dla robotów kodowanie encjami html to na prawdę przeszkoda? Teoretycznie mogą one "znać" ciąg kodujący "mailto:" i ":otliam" i na tej podstawie łatwo wychwycić, czy dany element może być potencjalnym adresem e-mail.

Co do CSS to z tego co sprawdzałem googlebot ich nie dostaje, ale z drugiej strony należy pamiętać, że google wykrywa sztuczki typu "color:white" dla tekstu na białym tle strony (dawne metody na keywords), czy height:1px itp. Wydaje mi się więc, że nie można tak do końca zakładać, że CSS są w pełni ukryte przed robotami (chyba, że się mylę?). Ponad to w przypadku CSS uważam, że metoda z odwracaniem znaków może być nieco problematyczna jeśli ktoś będzie chciał z ręki przekopiować adres (chyba, że odpowiednio to przechwycimy).

Sposobu z obrazkiem nie będę komentował z myślę oczywistych powodów.

 

Zastanawiając się nad tym zrobiłem swoją wersję ochrony e-maila, dostępną na: https://jsfiddle.net/drogimex/uL1radap/

Moje założenia są następujące:

  1. Tworzymy pusty znacznik <p>
  2. Przypisujemy do tego znacznika <p> CSS :hover imtujący zachowanie jak <a>, czyli np. color, cursor itp.
  3. Robot wchodząc na stronę widzi tylko pusty znacznik <p> i ewentualnie jego CSS, czyli de facto nic co mogłoby w jakikolwiek sposób wskazywać mu, że to może być e-mail
  4. Z poziomu JS po wczytaniu strony modyfikujemy textContent znacznika p i wstawiamy tak nasz adres@domena.pl
  5. Nasłuchujemy zdarzenia kliknięcia w nasz znacznik <p> i wywołujemy window.location.href="mailto:adres@domena.pl" co otwiera domyślny program/aplikację pocztowy. W każdej chwili możemy również swobodnie kopiować sobie ten adres i ręcznie wklejać w programie pocztowym. Robot natomiast nie mając dostępu do JS w ogóle nie wie, że tutaj za chwilę będzie adres e-mail.

To są jednak tylko moje pewne założenia. Czasami spotykam jeszcze jedną metodę polegającą na częściowym ukryciu adresu i zrobieniu czegoś na styl przycisku "Pokaż adres", a po jego kliknięciu następuje modyfikacja elementu i wprowadzenie pełnego adresu. Założenie podobne jak moje, czyli że roboty nie będą uruchamiały JS, tylko że wymaga to nieco więcej ingerencji użytkownika... a ja lubię poszukiwać rozwiązań jak najmniej absorbujących użytkowników :)

Wiem, że z moja metoda uniemożliwi wysłanie e-maila użytkownikom, którzy mają wyłączoną obsługę JS lub urządzenia bez JS, ale pytanie ile % z nich faktycznie chciałoby na takich urządzeniach wysyłać wiadomość? (według mnie można ich w tym wypadku pominąć, ale chętnie usłyszę inne zdania na ten temat).

Zapraszam do dyskusji i krytykowania / analizowania powyższych metod (w tym i tej mojej).

Pozdrawiam

4 odpowiedzi

0 głosów
odpowiedź 7 maja 2017 przez rafal.budzis Szeryf (85,260 p.)
Warto to stosować ? Ja dostałem w przeciągu roku 1 spama. I jakoś nie widze potrzeby zabezpieczania adresów. A swój ades podaje dodatkowo w mikro danych aby google widziało.
komentarz 7 maja 2017 przez Tomek Sochacki Ekspert (227,510 p.)
no właśnie powiem Ci, że zauważam i u siebie na niektórych stronach i u innych osób jak z nimi rozmawiam problem spamowania e-maili po ich opublikowaniu na www. Co więcej, zdarzało mi się dostać np. ten sam spam jednocześnie na wszystkie e-maile jakie widniały w danej witrynie.
0 głosów
odpowiedź 7 maja 2017 przez Ivan Maniak (60,650 p.)
Mam pytanie: Po co?

Dlaczego chcesz udostępniać mejle użytkowników?
Jeżeli chcesz stworzyć jakąś listę w panelu administratora lub pokazać użytkownikowi jego mejl (Na przykład tutaj, pod odpowiedzą jest opcja "Powiadom mnie (email@example.com), jeśli...") to różnego rodzaju zabezpieczenia nie mają sensu, no bo kto ma ukraść mejl, który pokazuje się tylko właścicielowi.

Jeżeli nie potrzebujemy udostępniać całego mejla, a tylko jego cześć (na przykład w celu weryfikacji), to chyba najlepszym sposobem jest po prostu zamiana ~30% znaków w mejlu.
komentarz 7 maja 2017 przez Tomek Sochacki Ekspert (227,510 p.)
Źle mnie zrozumiałeś. Chodzi na przykład o chociażby zwykłą tzw. wizytówkę firmową, gdzie w stopce podajesz adres e-mail. Dodatkowo oczywiście najczęściej leci również formularz z odpowiednią np. captcha, ale i tak często klienci chcą, aby w stopce znalazł się ich adresik. I chodzi właśnie o takie zabezpieczenia.

Według mnie nieco głupio wyglądałoby częściowe zakrywanie adresu w stopce i wymuszanie jego pokazania (np. kliknięcie w "Pokaż adres").
0 głosów
odpowiedź 8 maja 2017 przez Assasz Nałogowiec (30,460 p.)
Wydaje mi się, że i tak nie ukryjesz maila w 100% przed botami, a co najwyżej utrudnisz jego odbiór przez użytkownika. Od tego powinny być formularze kontaktowe.

Najlepszym już zabezpieczeniem byłoby chyba umieszczenie obrazka - oczywiście uniemożliwi to skopiowanie tekstu, ale można założyć, że potencjalny użytkownik nie będzie aż tak leniwy, aby go sobie po prostu nie przepisał.
0 głosów
odpowiedź 8 maja 2017 przez jpacanowski VIP (101,940 p.)

Ja to robię tak... i tylko tak... jeśli w ogóle myślę o umieszczeniu adresu e-mail na stronie...

.mail {position: relative}
.mail:before {content: attr(data-mail-local) "@"}
.mail:after {content: attr(data-mail-domain)}
e-mail: <a href="#" class="mail" data-mail-local="kontakt" data-mail-domain="jpacanowski.pl" tabindex="0" onfocus="this.href='mailto:' + this.getAttribute('data-mail-local') + '\u0040' + this.getAttribute('data-mail-domain');"></a>

i tyle w tym temacie...

1
komentarz 8 maja 2017 przez Tomek Sochacki Ekspert (227,510 p.)

i tyle w tym temacie...

ehh czemu od razu koniec tematu...? Skąd takie wrogie nastawienie do tego wątku.

Stworzyłem go, bo według mnie FORUM to właśnie platforma do dyskusji i bylem ciekaw jak do tego problemu podchodzą inni. 

Twój sposób jest ciekawy i fajnie, że znalazł się w tym wątku. Może uda nam się z czasem zebrać kilka różnych pomysłów i będziemy wszyscy mieli jakąś bazę pomysłów do analizy/oceny.

Pozdrawiam

komentarz 31 marca 2018 przez i_wiki Nowicjusz (100 p.)

@jpacanowski, Witam, spodobal mi sie panski skrypt, tylko nie wiem jak go zmodyfikowac zeby zamiast adresu email miec przycisk.

Podobne pytania

+1 głos
3 odpowiedzi 477 wizyt
pytanie zadane 26 lipca 2021 w JavaScript przez piter11251 Obywatel (1,280 p.)
0 głosów
1 odpowiedź 239 wizyt
pytanie zadane 25 lipca 2019 w JavaScript przez DanexZ Obywatel (1,270 p.)
0 głosów
1 odpowiedź 105 wizyt
pytanie zadane 25 marca 2020 w Sieci komputerowe, internet przez jerk0 Użytkownik (540 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...