Autor Zpráva
hameluk
Profil
Ahoj, zaujalo mě tvrzení našeho Velkého rádce a učitele Yuhůa :-), který na této stránce doporučuje zobrazovat e-mailovou adresu na stránkách, neboť podle něho 70% uživatelů nepoužívá mailového klienta (Outlook atp.). Myslíte si, že je tahle informace stále aktuální jako byla v době psaní toho článku? Zobrazujete na svých stránkách e-maily tak jak je zde doporučováno?
Měsíček
Profil
Zobrazujeme, ale ne kvůli této radě ..
hameluk
Profil
Měsíček
:-) A proč tedy?
Joker
Profil
hameluk
Asi to bude stále aktuální. Já to sice teda nechápu, ale podle mých zkušeností "počítačově méně znalých" uživatelů z nějakého důvodu dáva přednost spíš tomu Seznamu a podobně, než aby používali nějaký e-mailový klient.
Dokonce i když ho mají v instalaci, prostě ho nepoužívají.
Joker
Profil
Jinak teda zobrazit svůj e-mail na stránkách i přímo mi přijde slušné k návštěvníkovi, i kdyby e-mailového klienta měl, když bude chtít z nějakého důvodu zjistit mou adresu (třeba jestli nějaký mail co mu přišel je ode mě), bude na ten odkaz muset kliknout (pokročilejší jen najet, ale většina kliknout)
Měsíček
Profil
":-) A proč tedy?"

Protože z vlastní zkušenosti vím, že ho někdy hodně potřebuji (myslím u druhých webů) a docela mě štve když to tam nemají a musím to pracně hledat, další co mi není pochuti když je to uděláno takovým typem odkazu, že je odkaz připraven jen pro klienta na PC (pouze mailto:) ..,ale jsem rád když někteří uvádějí i alternativu .., protože tak je to aktuální jak pro ty, kteří přistupují k e-mailu od klienta na PC, tak i pro ty, kteří přistupují přes webového klienta.

Takže něják tak:

<a href="mailto:something@something.cz">something@something.cz</a>
Dranel
Profil
hameluk
Dovolím si Měsíčkův příklad trochu ochránit:
<a href="mailto:neco&-#-6-4;<!---->neco.cz">neco&-#-6-4;<!---->neco.cz</a > // entitu zapiš bez pomlček


Informace jsem čerpal z této http://latrine.dgx.cz/experiment-s-maskovanim-e-mailu-pred-roboty stránky.
Str4wberry
Profil
Reakce na hameluka:
Doporučuji se tím řídit. Bohužel ne všechny prohlížeče mají funkci „Kopírovat adresu el. pošty“ při vyvolání kontextové nabídky odkazu „Napište mi“. A navíc ji (funkci) uživatelé nemusí znát.


Reakce na Dranela:
Dovolím si Měsíčkův příklad trochu ochránit:
Nebylo by, Draneli, lepší ochránit spíš adresu v <a href=''>?
Dranel
Profil
Str4wberry
Ano, pardon. Popletl jsem to :)

hameluk
Opraveno.
hameluk
Profil
OK, děkuji za názory, budu se jimi řídit :-)
hameluk
Profil
Dranel
Tak nevím co dělám blbě? Chci ochránit e-mailovou adresu entitou a komentářovými tagy, ale v v odkazu za mailto: mi to nejde - zbrazuje mi to to v e-mailové adrese ty znaky komnetáře! Tedy konkrétně - pokud zapíšu např. (samozřejmě bez pomlček mezi znaky v entitě)

<a href="mailto:adresa&-#-6-4;<!-- aaa --->domena.cz">adresa@domena.cz</a> - pak při najetí myši vidím dole na stavovém řádku prohlížeče i ten komentář, který má navíc závory, vykřičník a mezery zobrazeny hexadecimálním zápisem....

Když ovšem zapíšu komentářové tagy až do samotné adresy, která se zobrazuje na stránce (před tagem </a>), pak je vš v pořádku - komentář se vyignoruje.

Dělám něco špatně? Žeby se do tagu <href> nesměly vkládat komentáře? Ty je tam ale v tomto příkladu máš...
Chamurappi
Profil
Reaguji na hameluka:
Ano, do atributu href se nesmí vkládat HTML komentáře.
Mělo by bohatě stačit, když zapíšeš oba zavináče entitou &#64;.
Joker
Profil
ad ochrana mailu, mně se prozatím nejvíce líbí můj vlastní způsob :), viz moje stránky:
<a class="kontakt">mail<span>@</span>it-joker.cz</a>

...plus skriptík, co najde odkazy třídy kontakt, vybere z nich vnitřek, vyhodí span a ze zbytku vyrobí href.
hameluk
Profil
Chamurappi
Ano, děkuju - zmátl mě ten příklad Dranela.

Joker
Skript? Tak to jde zatím zcela mimo mě :-)

Ápropos - jak je to s těmi vyhledávači adres? Kterou oni vlastně sbírají? Tu ze samotnéjo kódu, tedy tu za mailto: anebo tu, která se zobrazuje (před tagem </a>)?
Str4wberry
Profil
Reakce na hameluka:
Ápropos - jak je to s těmi vyhledávači adres? Kterou oni vlastně sbírají?
Podle mě obě.
Dranel
Profil
hameluk
Tak jsem to zamotal více, než jsem myslel :)
<a href="mailto:neco&-#-6-4;neco.cz">neco&-#-6-4;neco.cz</a > // entitu zapiš bez pomlček

Mimochodem já mailto nedávám vůbec. Zatím jsem nenarazil na člověka, kdo by nějakého emailového klienta používal.

Chamurappi
Jaktože tobě se zápis &-#-6-4; (bez pomlček) nezobrazí jako zavináč? Nechápu.

Joker
Hezké.

Str4wberry
Skusíme to někde najít, ať nemluvíme do větru...
Chamurappi
Profil
Reaguji na Dranela:
Jaktože tobě se zápis &-#-6-4; (bez pomlček) nezobrazí jako zavináč?
Protože zapisuju mřížku znakovou entitou: &&#35;64;
(Pak ale musím dávat pozor při editaci příspěvku, jelikož se entita převede i ve formuláři.)

Skusíme to někde najít, ať nemluvíme do větru...
Co bys chtěl hledat? Sběrači adres budou brát všechno, co vypadá jako adresa, odkudkoliv. Riziko nedoručitelnosti spammery moc netrápí.
Dranel
Profil
Chamurappi
Co bys chtěl hledat? Sběrači adres budou brát všechno, co vypadá jako adresa, odkudkoliv. Riziko nedoručitelnosti spammery moc netrápí.
Takže sběrači prohledávají kód nebo obsah stránky?
Timy
Profil
Dranel
Kód. A s kódem si můžou dělat co chtějí.
TSD
Profil
Kdysi jsem psal něco na sběr mailových adres z webů za účelem rozesílání reklamy na svůj SW. Snad mě omlouvá, že to bylo v době, kdy ještě neexistoval pojem "spam" a rozesílání reklamy jsem nechal, když po zkušební stovce mailů jsem dosáhl jedné pozitivní reakce a dvou poslání někam.

Vykuchat mail ze stránky je triviální věc. Je úplně jedno, jestli je zavináč napsaný tak nebo tak, nebo se použijí "finty" tyou <span>@</span>. Jakákoliv podobná technika obstojí do té doby, dokud ji autor toho algoritmu někde nenajde. Zapracování je otázkou desítek minut. Obstát může možná JS, který nějak manipuluje s textem až v prohlížeči a myslím, že by to nikomu za tu práci nestálo.
Timy
Profil
Tak jsem napsal takovou miniaplikaci na sběr emailových adres, včetně testovací stránky. Výsledek je k vidění tadyhle. Za asi deset minut jsem napsal soft, který prolomí všechnu ochranu, kterou jste tady zmínili :-). A to ještě s PHP neumím :o).

Samozřejmě to není nijak dokonalé, ale pro názornost to snad stačí.
hameluk
Profil
Takže když to shrnu - jediným jednoduše použitelným "zamaskováním" e-mailové adresy je použití entity na "zavináč" - použití komentářovýc tagů <!-- nejaka blbost --> v samotné zobrazované e-mailové adrese nemá smysl - robot si tu adresu stejnak zjistí z odkazu za mailto:, kde komentářové tagy použít nejdou...
Timy
Profil
hameluk
No nevím, jak říkám — moje desetiminutová aplikace si s entitou poradila…
hameluk
Profil
Timy
Já vím, vycházím jen ze článku, na který o kus výš odkazoval Dranel...
Joker
Profil
Timy
Za asi deset minut jsem napsal soft, který prolomí všechnu ochranu, kterou jste tady zmínili
Zajímavé, jak je to udělané?
Zvládne to prolomit i "druhou úroveň" té mojí ochrany? :-) Totiž to co jsem tady napsal byla jenom zjednodušená ukázka, aby bylo vidět, jak to funguje, na mém webu je to ještě trochu "vylepšené":
<a class="kontakt">&#109;ai&#108;<span>&#64;</span>it-jok&#101;r&#46;&#99 ;z</a>

Pravda, asi by nebyl problém většinu těch ochran obejít takhle: podle nějaké tabulky převést entity na znaky, pak udělat strip_tags a pak vyhledat adresu.

Nicméně pořád se dá spoléhat na to, že 1. většina robotů si s tím nedá tolik práce a 2. vytěžování dat z webových stránek už asi není hlavní zdroj e-mailů pro spammery.
Joker
Profil
Timy
Jo a pokud by to ten skript zvládl, tak třetí úroveň:
<a class="kontakt">&#109;ai&#108;<span>-zavináč-</span>it-jok&#101;r&#46; &#99;z</a>
(pokud adresu opisujete, změňte prosím -zavináč- na @)

...sice to už trochu omezí návštěvníky, co by adresu kopírovali ("klikací" adresa by byla pořád stejná), ale pokud budeme předpokládat, že robot neví, jaký text používám místo @ (a že ten text se může kdykoliv změnit), je to doufám neprůstřelné.
Timy
Profil
Joker
Přidal jsem to tam. Zvládlo to přečíst i bez úpravy PHP kódu. Tady je zdroják, který ty emaily tahá:

function email($string)
{
	if(obsahuje_zavinac($string))
	{
		$puv=array("mailto:", "@", "(at)", "(dot)");
		$nahr=array("","@","@",".");
		$uprava=str_replace($puv, $nahr, $string);
		echo "<li>email: <strong>",$uprava,"</strong>\n";
	}
		
}

function obsahuje_zavinac($string)
{
	return strpos($string, "@")>0 || strpos($string, "&#64;")>0 || strpos($string, "(at)")>0;
}

preg_replace("/href=\"(.*)\"/eU", "email('\\1')", $file);
preg_replace("/href=\'(.*)\'/eU", "email('\\1')", $file);

$file=strip_tags($file);
$file=explode(" ", $file);

$limit=count($file);

for($i=0; $i<$limit; $i++)
	email($file[$i]);


Kód je to vcelku triviální, není třeba žádných extra znalostí. Pomocí dalších regulárů, které neumím, by se to dalo hodně vylepšit.

Občas dělá bordel, když je v kódu něco takového: <p>slovo</p><p>email@bla.cz</p>. Po strip_tags z toho vznikne „slovoemail@bla.cz“, což není žádoucí. Dalo by se to předělat tak, že by se odstranily pouze řádkové elementy a namísto blokových se se třeba šoupla mezera.
Timy
Profil
Joker
„Jo a pokud by to ten skript zvládl, tak třetí úroveň:“
Přímo na té ukázková stránce mám kód: „<p>tohle bude dalsi email, hle: pokus(at)pokus(dot)com</p>“ a email z toho vyzobu. Samozřejmě když budeš stále obměňovat ten náhradní text za zavináč, tak už to zjistit nepůjde.

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0