2009-03-30 25 views
10

Próbuję wymyślić obfuscator e-mail JavaScript, aby zmniejszyć ryzyko spamu w wiadomościach e-mail wymienionych na stronie internetowej. Obecnie mam obfuscator oparty na JavaScript, który wykorzystuje kombinację kodowania HTML & JavaScript, aby przekształcić zaciemnioną wiadomość e-mail w zwykłą wiadomość e-mail w przejrzysty sposób.Dobry nieintruzywny obfuscator e-mail antyspamowy?

Co mogę zrobić, to w ten sposób:

Formatowanie "mailto:" część href w linki do zakodowania HTML jak:

mailto: 

ja też zakodować e-mail, zastępując znak @ z (a) tak, że e-mail czyta coś takiego:

stackoverflow(a)example.com 

I wtedy użyć niektórych JavaScript rozszyfrować wszystkie linki mailto, które mają tę (a) zaloguj się w e-mailu i przekonwertuj je na @ po wczytaniu strony.

Działa to całkiem dobrze. Osoby korzystające z przeglądarek z włączoną obsługą JavaScript widzą, że wszystko działa normalnie. Dla osób bez włączonego JavaScriptu każdy znany mi klient pocztowy uznałby adres e-mail za nieprawidłowy, jednak powinien on być w stanie wywnioskować, co jest potrzebne, aby poprawić symbol.

Zastanawiałem się, czy nie było lepiej (mniej inwazyjne (lub w najlepszym razie, niezbyt nachalne), ale bardziej odporne spamer) sposób kasował wiadomości e-mail na stronie internetowej.

Podobnie jak w przypadku każdego rodzaju zaciemniania, jeśli człowiek lub komputer może z łatwością je zaciemnić, wówczas spamer może z łatwością zrobić to samo. Z tego powodu nie oczekuję niezawodnego zaciemniania, ale byłem ciekawy, jakie są inne sugestie. Wyszukiwanie w Google nie ujawniło żadnych rozwiązań, które uważam za lepsze od mojego obecnego rozwiązania. Zastanawiałem się, czy są jakieś inne dobre alternatywy.

+0

Pielęgnacja powrócić do tej strony Dan i zaznaczyć odpowiedź zaakceptowana? Odpowiedź Scotta dla mnie zadziałała. – Gray

Odpowiedz

0

Jednym ze sposobów zaciemnienia wiadomości e-mail dla komputera byłoby zapisanie e-maila jako obrazu, a nie jako tekstu. W ten sposób człowiek może łatwo odczytać adres e-mail i dość ciężko na komputer.

Jak podaje Steve Gilham, otrzymanie e-maila z OCR nie jest trudne. I tylko przeglądarki tekstowe nie obsługują ich. Dlatego rozwiązanie Scotta jest prawdopodobnie najlepszym rozwiązaniem.

7

Użyłem w przeszłości HiveLogic Enkoder z całkiem niezłym sukcesem. Jeśli cokolwiek, możesz chcieć rzucić okiem na sposób kodowania Dana, ponieważ może to dać ci kilka pomysłów na stworzenie jeszcze bardziej niezawodnego obfuscatora.

1

Jeśli Naprawdę chcesz chronić adresy e-mail, nie będzie innego sposobu niż generowanie obrazów dla użytkowników innych niż JavaScript.
Ja używałem coś takiego:

<script type="text/javascript"> 
//<![CDATA[ 
    scrambler('[email protected]||mo'); 
//]]> 
</script> 
<noscript> 
    <img src="[email protected]||mo" alt="Emailadresse" /> 
</noscript> 

scramble jest bardzo prosta funkcja JavaScript, myślę, że z łatwością mógł dowiedzieć się, co robi. (To spowoduje: <a href="mailto:[email protected]">[email protected]</a>) scrambler.php jest taki sam, z wyjątkiem php i backend gd do generowania obrazów.

Napisz coś, co nie jest związane z niektórymi encodingtrickami lub zastąpieniem czegoś czymś innym.

EDIT: Oto mój algo:

function scrambler (text) { 
    parts = text.split("||"); 
    var reverse = function (s) { 
    var ret =''; 
    for (var i=s.length-1;i>=0;i--) 
     ret+=s.charAt(i); 
    return ret; 
    } 
    text = reverse(parts[0])+reverse(parts[1]); 
    document.write(text); 
}