2009-03-30 35 views
10

Tôi đang cố gắng tìm ra trình chặn thư điện tử JavaScript để giảm nguy cơ spam trong các email được liệt kê trên trang web. Ngay bây giờ tôi đã có một obfuscator dựa trên JavaScript sử dụng một sự kết hợp của mã hóa HTML & JavaScript để chuyển đổi một email obfuscated thành một email bình thường một cách minh bạch.obfuscator email chống spam không xâm nhập tốt?

Format "mailto::" một phần của href trong các liên kết được HTML mã hóa như:

mailto: 

Tôi cũng mã hóa email, thay thế cho dấu @ với

Những gì tôi làm điều này là (a), do đó email đọc một cái gì đó như:

stackoverflow(a)example.com 

tôi sau đó sử dụng một số hoạt Javascript để giải mã tất cả các liên kết mailto cónàyđăng nhập vào email và chuyển đổi chúng thành @ khi tải trang.

Điều này hoạt động khá tốt. Đối với những người sử dụng trình duyệt đã bật JavaScript, họ thấy mọi thứ hoạt động bình thường. Đối với những người không bật JavaScript, mọi ứng dụng thư tôi biết sẽ coi địa chỉ email là không hợp lệ, tuy nhiên người dùng sẽ có thể suy ra những gì cần thiết để sửa biểu tượng.

Tôi đã tự hỏi liệu có cách nào tốt hơn (ít xâm phạm (hoặc tốt nhất, không xâm phạm) nhưng có khả năng chống spam nhiều hơn) làm xáo trộn các email trên trang web.

Như với bất kỳ loại obfuscation, nếu một con người hoặc máy tính có thể dễ dàng de-obfuscate nó, sau đó một spammer có thể dễ dàng làm như vậy. Bởi vì điều này, tôi không mong đợi một obfuscation foolproof, tuy nhiên tôi đã tò mò để xem những gì khác đề xuất đã được ra khỏi đó. Tìm kiếm trên Google không tiết lộ bất kỳ giải pháp nào mà tôi cho là tốt hơn so với giải pháp hiện tại của tôi. Tôi đã tự hỏi nếu có bất kỳ lựa chọn thay thế tốt khác.

+0

Chăm sóc để vào lại trang này Dan và đánh dấu một câu trả lời như được chấp nhận? Câu trả lời của Scott làm việc cho tôi. – Gray

Trả lời

0

Một cách để làm xáo trộn email cho máy tính là viết email dưới dạng hình ảnh chứ không phải dưới dạng văn bản. Bằng cách này, người ta vẫn dễ dàng đọc địa chỉ email và khá khó khăn đối với một máy tính.

Như đã nêu trong Steve Gilham không khó để nhận email có OCR. Và các trình duyệt chỉ có văn bản không hỗ trợ chúng. Do đó, giải pháp của Scott có lẽ là giải pháp tốt nhất.

7

Tôi đã sử dụng HiveLogic Enkoder trong quá khứ với thành công khá tốt. Nếu bất cứ điều gì bạn có thể muốn xem xét cách mã hóa của Dan hoạt động như nó có thể cung cấp cho bạn một số ý tưởng để làm cho một obfuscator mạnh mẽ hơn.

0

Tôi đã sử dụng máy phát điện này http://www.wbwip.com/wbw/emailencoder.html dịch vụ trong một thời gian và hoạt động tốt. Tôi thường sử dụng các phần của địa chỉ được mã hóa và một phần không có.

Ví dụ ...

[email protected] == user@po.com

tôi có thể thay đổi để ...

[email protected] == user@po.com

1

Nếu bạn thực sự muốn bảo vệ địa chỉ email sẽ không có cách nào khác sau đó tạo hình ảnh cho người dùng không sử dụng JavaScript.
Tôi đã từng sử dụng một cái gì đó như thế này:

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

scramble là một hàm JavaScript rất đơn giản, tôi nghĩ bạn có thể dễ dàng hình dung ra những gì nó làm. (Nó sẽ dẫn đến: <a href="mailto:[email protected]">[email protected]</a>) scrambler.php là như nhau, ngoại trừ trong php và một phụ trợ gd để tạo ra hình ảnh.

Tìm hiểu điều gì đó không phải về một số thuật toán mã hóa hoặc thay thế một số thứ khác bằng cách khác.

EDIT: Đây là algo của tôi:

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); 
} 
Các vấn đề liên quan