What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 133 Stack Exchange communities.

I've noticed that emails are not protected in the user description. For example Jon Skeet entered his email and when viewing the source code of the page it is plain text that malicious bots could harvest and exploit to spam. It would be nice if email addresses were automatically encoded to prevent this.

share|improve this question
1  
Just to expand a little bit on the accepted answer, another solution would be to make the image yourself and put it in the description area. –  Francisco Presencia Dec 16 '13 at 13:04

2 Answers 2

up vote 18 down vote accepted

I think if you enter your email address as plain text on a public site, you should be making a conscious decision.

Personally I made that decision years ago: I'm going to get lots of spam no matter what I do, so I need decent spam protection. Once that's a requirement anyway, I might as well make it as easy as possible for real people to get in touch.

Folks who want to take a different path can work out their own way of protecting email addresses ("skeet at pobox dot com" or whatever). I don't think this is really Stack Overflow's job. It's not like it's displaying an email address field - it's just a plain text description which happens to include my email address.

share|improve this answer
    
well, technically "about me" is a post body like any other markdown field in questions or answers, so you could obfuscate it a tiny bit via HTML entities or the like.. but point taken, of course –  Jeff Atwood Sep 3 '10 at 9:45
    
Alright, just wanted to make sure. Thank you. –  Darin Dimitrov Sep 3 '10 at 13:09

Option 1 : Split email address into multiple parts and create an array in JavaScript out of these parts. Next join these parts in the correct order and use the .innerHTML property to add the email address to the web page.

 <span id="email">  </span>   // blank tag

 <script>
 var parts = ["info", "XXXXabc", "com", "&#46;", "&#64;"];
 var email = parts[0] + parts[4] + parts[1] + parts[3] + parts[2];
 document.getElementById("email").innerHTML=email; 
 </script>

Option 2 : Use image instead of email text

Image creator website from text : http://www.chxo.com/labelgen/

Option 3 : We can use AT instead of "@" and DOT instead of " . "

i.e :

 info(AT)XXXabc(DOT)com 
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .