[dyskusja] "Ukrycie" adresu e-mail przed robotami

0

Tak sobie myślę nad prostą ochroną adresów e-mail na stronach.
Co powiecie na takie coś?
<bdo dir="rtl">lp.enfuop@enjat</bdo>
Wygląda dobrze? Kod to:
<bdo dir="rtl">lp.enfuop@enjat</bdo>

Nie wymaga użycia języków po stronie serwera ani JS - ciekawe jak sobie z tym radzą roboty spamerskie.

Można by dorzucić to do Coyote np. w dokumentacji etc - co myślicie?
dyskusja otwarta

0

roboty mogą sobie poradzić a przy okazji samo wyświetlenie adresu e-mail to nie problem żeby roboty nie chyciły - cała sztuka w tym żeby po kliknięciu otworzył się klient poczty z wpisanym dobrze adresem a robot tego nie umiał otworzyć - ale tu już trzeba raczej skrypt

0
Adamo napisał(a)

roboty mogą sobie poradzić a przy okazji samo wyświetlenie adresu e-mail to nie problem żeby roboty nie chyciły - cała sztuka w tym żeby po kliknięciu otworzył się klient poczty z wpisanym dobrze adresem a robot tego nie umiał otworzyć - ale tu już trzeba raczej skrypt

Zgadzam sie, tez sporo kombinowalem i pozostalem przy onclick i zlepianiu adresu z dwoch zmiennych.

0

a co sądzicie o ich zabezpieczeniu?

http://komputerswiat.pl/biznes/redakcja/redakcja.html

0
fleming86 napisał(a)

a co sądzicie o ich zabezpieczeniu?

http://komputerswiat.pl/biznes/redakcja/redakcja.html
Ma dużą wadę - spróbuj odczytać maila nie mając żadnego programu do poczty (np. jak wysyłasz przez www) - zapomnij :/ Przerabiałem to kiedyś...

0
Marooned napisał(a)

spróbuj odczytać maila nie mając żadnego programu do poczty (np. jak wysyłasz przez www) - zapomnij :/

Hmm - popatrzylem w zrodlo i z tego co widze, to wystarczy kliknac by miec mailto: - jak nie masz programu do poczty podpietego, to afaik mail pokaze sie w oknie adresu.

Zawsze mozna zastosowac pewna hybryde - np. img z adresem ktore dodatkowo ma taki onclick, lub z pokazanym przez Ciebie sposobem odwracania ciagu. Sam to chyba zastosuje.

0

najlepiej w ogole nie podawac swojego maila, lub ukryc go porzadnie aby osoby ktore naprawde potrzebuja mogly odczytac. Kilka lat temu na mojej stronie podalem adres e mail. Jest zabespieczony przed odczytaniem przoez roboty - java script skleja go z kilku czesci, ale mimo ze spamu, jako informacji reklamowej nie dostaje duzo, to wiekszosc niechcianych maili - kilkadziesiat dziennie to wirusy (najwiecej chyba Mytob i Netsky). Mimo, ze anty spam wiekszosc wylapuje, to jednak gdybym nie podal kiedys maila w tak widocznym miejscu. Duzo osob nie wpisalo go do programu pocztowego, to teraz wirusy ktore sie im zainstalowaly, nie wysylaly by mi tego spamu. Inna sprawa, ze gdyby na o2 mieli antywirus to tez bym nie dostawal...

0

ja dawno sobie napisałem takie zabezpieczenie i mi wystarcza i z niego korzystam: http://jackow.farvista.net

0
Adamo napisał(a)

http://jackow.farvista.net

Serwer padl?

// to chyba nie ogarniam Twoich zabezpieczen [glowa]

//

nie czaje ...

// Nie ma takiego hosta nawet jak farvista.net wg. mojego win, a nie chce mi sie z zewnatrz sprawdzac. Pewnie ja czegos nie czaje ;).

0
roSzi napisał(a)
Adamo napisał(a)

http://jackow.farvista.net

Serwer padl?

no nie bardzo

// to chyba nie ogarniam Twoich zabezpieczen [sciana]

nie czaje ...

0
Adamo napisał(a)
roSzi napisał(a)
Adamo napisał(a)

http://jackow.farvista.net

Serwer padl?

no nie bardzo

Dzisiaj juz dziala. F-cje encode() moglbys udostepnic? :D

0

moze zacznijcie pisac adresy od konca :)
wp.pl@adresik

0

Jak dziala ten skrypt? Jak z niego korzystac?

0
Qp3k napisał(a)

Jak dziala ten skrypt? Jak z niego korzystac?

z którego ? tego mojego ? skrypt pisany dawno i nie prawda (jeszcze nawet miałem inny system wcięć i odstępów ;P), bez sensu, ładu i składu, zajmuje 70 x tyle ile powinien, troche przesadza, działa pewno na małej ilości przeglądarek itepe itede ale jak ktoś chce to źródło tej strony wygląda tak:

<?php
include('email.php');

function mail_link($email,$text){
 return "<a onmouseover=\"return addHint(this,'".email($email)."')\" href=\"javascript:mlTo(this)\">$text</a>";
}
?>
<?= mail_link('[email protected]','mój mail') ?><br>
<?= mail_link('[email protected]','drugi mail') ?><br>

natomiast plik email.php wygląda tak:

<?php
$decode='abcdefghijklmnopqrstuvwxyz0123456789@._';
$encode='abcdefghijklmnopqrstuvwxyz!@#$%^&*()_-+|.:; []{}';

function tab($s){
 for($w=Array(),$i=0;$i<strlen($s);$i++) $w[]=$s[$i];
 return $w;
}

function arrayRand($tablica,$ile){
 $ran=array_rand($tablica,$ile);
 $wynik=Array();
 foreach($ran as $klucz) $wynik[]=$tablica[$klucz];
 return $wynik;
}

function encode($text,$de,$en){
 for($wyn=$text,$i=0;$i<strlen($text);$i++)
  if(($h=array_search($text[$i],$de))!==false) $wyn[$i]=$en[$h];
 return $wyn;
}

$tdecod=arrayRand($dec=array_unique(tab($decode)),count($dec));
$tencod=arrayRand($enc=array_unique(tab($encode)),count($dec));
$klucz=implode('',$tdecod).implode('',$tencod);

function email($email){
 global $tdecod, $tencod;
 return encode($email,$tdecod,$tencod);
}

function mail_skrypt(){
 global $klucz;
?><script language=JavaScript type="text/javascript"><!--
function decode(email){
 for(wyn='',tab='<?= $klucz ?>',i=0;i<email.length;i++)
  if((h=(tab.substring(tab.length/2,tab.length)).indexOf(email.charAt(i)))>=0) 
   wyn+=(tab.substring(0,tab.length/2)).charAt(h); else wyn+=email.charAt(i);
 return wyn;
}
estatus='';
istatus=false;
function sstatus(r){
 window.status=estatus;
 if(istatus){ clearInterval(istatus); istatus=false }
 if(!r) istatus=setInterval('sstatus(true)',50);
}
function stat(email){
 if(!email){ estatus=''; sstatus(false) } else {
  estatus='mailto:'+decode(email);
  sstatus(false); return true;
 }
}
function addHint(co,email){
 if(!co.setup) with(co){
  title=decode(email); onmouseout=function(){ stat() } 
  mail=email; href='mailto:'+decode(email); setup=true;
 }
 return stat(email)
}
function mlTo(co){ location.href='mailto:'+decode(co.mail) }
//--></script><?php
}

?>

w sumie niektórych fragmentów teraz nie rozumiem i nie wiem czemu tak napisałem :O teoretycznie też szyfr i wygląd maila w kodzie powinien się zmieniać z każdym odświeżeniem strony i tak było, a teraz na farvista na każdym razem otrzymuję to samo ... no cóż ... albo serwer sobie zaczął cacheować wyniki skryptów i nie przetwarza na nowo email.php, albo nagle zaczął wymagać generatora liczb pseudolosowych, albo niewidzialne proxy na wyjściu mi nie ściąga nowej wersji, albo mi cache szwankuje, albo kosmici to przerobili albo nie wiem

0

To może napisać najmniejszą i zarazem skuteczną funkcję do tego?
Taką, aby nawet nie programista umiał ją zastosować.

Taki mini-konkurs :)

0
Marooned napisał(a)

Taki mini-konkurs :)

konkurs, konkurs, jeeee [browar]

to moja interpretacja problemu:
http://piechnat.iglu.cz/download/email_address.html

//wiedziałem, że to będzie woda na młyn :> - M

0

Na początku chciałem zarzucić, że sporo botów umie już sobie poradzić z zapisem "somebody (at) server (dot) com" ale potem obadałem źródło.. i bardzo łatwo można to sobie zmienić np. na "somebody [jupi] server /jajej/ com"

//zmienilem troche kod html zeby od razu pokazac wszystkie mozliwosci - m.p

Wygląda genialnie :)

//thx - m.p

Ale może ktoś Cię pobije :>

[edited]
dogłębna analiza potwierdza fakt, że piechnat rządzi w JS [green] [browar]

0

Piechnat powalajacy jak zwykle ;)

0

Jak zrobić, żeby ten skrypt piechnata zadziałał w przypadku, jeśli chcemy ukryć adres e-mail będący tylko w miejscu href, np. w tym (z 4p):

<a title="Napisz do autora postu" href="mailto:[email protected]">
<img alt="" title="Napisz do autora postu" border="0" src="http://4programmers.net/templates/subMain/gfx/mail.gif" />
</a>
0

Planujemy wrzucić ten skrypt na stałe do Coyote aby można było np. w artach bezpiecznie pisać maile.
Ale fakt, o obrazku nie pomyślałem tak jak pisze fleming.

0

Hmm... A nie wystarczy inna klasa do uniknięcia zamieniania "środka" i odpowiednio podrasowany skrypt? Dodatkowo źródło adresu byłoby w href="" (tylko bez mailto: i w takiej formie z tymi [juppi] itp.).

0

Myślę, że takie perełki należałoby jakoś promować w naszym serwisie, aby były łatwo dostępne do znalezienia oraz użycia, tak jak np. Anakin promuje swój skrypt advAjax, stronka ze skryptem + zwięzły a zarazem bardzo czytelny opis + przykłady użycia.

0

Tak... Ale IMHO przydałoby się go najpierw doszlifować, zrobić go bardziej uniwersalnym (chociażby w wyżej wspomnianym zastosowaniu, gdy pomiędzy i musi się znaleźćcoś innego niż adres e-mail).

0

Pisałem ogólnie.
Zajrzyj tu: http://php5.pl/
Krótko i na temat, bez zbędnego owijania w bawełnę, zawiłych linków zakopanych w kategoriach.. tzn. nie mówię, że tak u nas ma być - chodzi mi o dostarczanie bardzo precyzyjnych i zawężonych rozwiązań na pewne tematy.

Do tej pory na 4p było więcej informacji ogólnych a brakowało gotowych krótkich i - co ważne - optymalnych rozwiązań.
Od profesjonalistów dla profesjonalistów.

Są niby 'gotowce' ale nie zawsze są to rzeczy nadające się do użycia, robione na około, etc etc.. takie przynajmniej mam odczucie.

0

Ogólnie - zdecydowanie popieram. Co do działu Gotowce - mam wrażenie, że ląduje tam praktycznie każdy program, którym ktoś chce się pochwalić. Dodatkowo bez żadnych porządnych perspektyw na wykorzystanie fragmentów w innych projektach, a nawet jeśli, to nie optymalnie.

0
Adam.Pilorz napisał(a)

(chociażby w wyżej wspomnianym zastosowaniu, gdy pomiędzy i musi się znaleźćcoś innego niż adres e-mail).

tylko ja do konca nie rozumiem dzialania, to znaczy jesli tag A nie ma atrybutu href="mailto: to ma wyciagnac adres z zawartosci i wstawic poprawny do zawartosci i do href'a a jak jest atrybut href to ma z niego wyciagnac adres i go podmienic na poprawny a zawartosci nie ruszac, czy tak ? czy to jest logiczne i universalne ? moze jakas inna strategie obmyslic ?

co do gotowcow to tak sobie przypominam jak ciagle jeczalem ze nie ma dzialu JavaScript i teraz tak sobie pomyslalem ze moze by zalozyc dzial DHTML i tam mozna by gotowce prowadzic i faq, pasowalo by do wszystkiego, bo wszystko co zawiera jakis skrypt i skrawek htmla to DHTML :)

BTW: czy ja nie buduje zdan jak 5-o latek ? [rotfl]

0
piechnat napisał(a)

tylko ja do konca nie rozumiem dzialania, to znaczy jesli tag A nie ma atrybutu href="mailto: to ma wyciagnac adres z zawartosci i wstawic poprawny do zawartosci i do href'a a jak jest atrybut href to ma z niego wyciagnac adres i go podmienic na poprawny a zawartosci nie ruszac, czy tak ? czy to jest logiczne i universalne ? moze jakas inna strategie obmyslic ?

Nie wiem, czy to jest najlepsze wyjście, ale brzmi całkiem intuicyjnie.

0
piechnat napisał(a)

moze jakas inna strategie obmyslic ?

Ja to widzę tak:
jest:
<a href="mailto:email(malpa)email(kropka)com" class="email_address">stały tekst</a>

a JS robi z tego:
<a href="mailto:[email protected]" class="email_address">stały tekst</a>

Ewentualnie może sprawdzać każdy href, czy nie ma w nim "mailto:" i znaków z emailReplaceArray - nie trzeba wtedy pisać w każdym class="email_address" (ale już chyba o tym pisałeś :P)

0
fleming86 napisał(a)

Ja to widzę tak:
jest:
<a href="mailto:email(malpa)email(kropka)com" class="email_address">stały tekst</a>

a JS robi z tego:
<a href="mailto:[email protected]" class="email_address">stały tekst</a>

jak jest już mailto to już robot ostro się przypatrzy temu fragmentowi kodu i z czegoś takiego jak mailto:email(malpa)email(kropka)com akurat nie będzie miał dużo do roboty bo to standardowe "zabezpieczenie" teraz
te roboty są coraz mądrzejsze nie ma że boli, ale jak się ma mało sławną stronkę to się nie ma co o to martwić

BTW: czy ja nie buduje zdan jak 5-o latek ? [rotfl]

5-o latek 5-o latkowi nie równy ...

0

mailto to niekoniecznie.. myślę, że jakaś klasa CSS [dowolna, ustalona w JS, żeby nie była zawsze "email_address"] to jest dobre rozwiązanie, bo:

  1. od razu mamy osobną klasę dla e-maili i w css mozna szybko je zmienic
  2. ponieważ to może być jedna z wielu klas, nie jest to żadne ograniczenie
    bo można przeca napisać <a ... class="email_address inna_klasa">
  3. chyba mega inteligentny robot sieciowy tylko skuma, że link z klasą "stefan" to ukryty mail - takich póki co raczej nie ma

1 użytkowników online, w tym zalogowanych: 0, gości: 1