Skip to main content

Hiding an email address with JavaScript

This works, is relatively simple and is pretty much immune to being scraped even by amazingly advanced ’bots – even a massivly underpaid human “’bot” would take a little while to sort it out:

<script language="JavaScript">
function href(spamtrap,username) {
return 'mail' +
('to' +
':' + username +
'@' + spamtrap).replace(/ /g,'.');
}

...and wherever you have an email link, you put something like this:

Email: <a href="mailto:username domain com au"
onmouseover="this.href=href('domain com au','username')"
title="Click to send to real email address">username at
domain com au</a>.

If you want to armour it even further, omit the “at”, use an image (not a nice, clean readily OCRable one, either) or don’t even put the shadow of an email address there.

Using the JavaScript function throws off the vast majority of bots, because there’s no “@” sign for them to key on. The really persistent ones will still key on “looks-like-username looks-like-domain-name” even if the delimiters are totally wild. Reversing the order of the domain and username should nail even the really persistent ones without having to do work-intensive stuff like hex- or MIME64-encoding strings.

Think of your own name for the function and obfuscate stuff in different ways (e.g. use “=” or “%” or capital letters as domain element separators or pass the domain as a variable-length list of arguments) lest the one name and technique suggested here become popular enough to be worth writing into a ’bot.

For the non-technical reader, what this does is supplies a web page with no easily discoverable trace of any email address in it. When the user waves their mouse over the email link, a little piece of JavaScript reconstructs the address and writes it into the link so that the web browser can now “see” it. Since ’bots generally don’t run the JavaScript, they have no hope of ever seeing the real address.

May the flaws be with you.

Comments

Popular posts from this blog

An Open and Shut response to Darl McBride

Hi, Darl. I see you’re being dishonest again . It’d be really nice if you could shoot straight for a change, but I think Kerry’s Dad will be selling snowplows in Hell first. Three years ago, when I first joined The SCO Group, we focused the company on the area that was most profitable and provided the most benefit to customers, investors, resellers, developers and employees: UNIX No, you focused the company on suing people, which was most profitable to lawyers and provided some golden parachutes for your buddies. People thought we were crazy. They were right. But since SCO owns the UNIX operating system The SCO Group does not own UNIX® in any sense of the word. The Open Group owns the UNIX trademark, definition and other rights , The SCO Group does not. The SCO Group doesn’t even own the UnixWare® or OpenServer® code, the rights to those are held by Novell and TSG use them only by permission and under certain conditions — which they have violate...

5x7 text dot-matrix in five minutes...

This is a fairly primitive toy I threw together today for a specific purpose, published in case it’s any use to others... feed it a list of words as command arguments, which it will then display as a 5x7 ASCII dotmatrix with ‘#’ as a dot & ‘_’ as a blank. /* * display text using a 5x7 bitmap font in ASCII letters */ static unsigned char font [] [5] = { { 0x00,0x00,0x00,0x00,0x00 }, // 0x20 32 { 0x00,0x00,0x6f,0x00,0x00 }, // ! 0x21 33 { 0x00,0x07,0x00,0x07,0x00 }, // " 0x22 34 { 0x14,0x7f,0x14,0x7f,0x14 }, // # 0x23 35 { 0x00,0x07,0x04,0x1e,0x00 }, // $ 0x24 36 { 0x23,0x13,0x08,0x64,0x62 }, // % 0x25 37 { 0x36,0x49,0x56,0x20,0x50 }, // & 0x26 38 { 0x00,0x00,0x07,0x00,0x00 }, // ' 0x27 39 { 0x00,0x1c,0x22,0x41,0x00 }, // ( 0x28 40 { 0x00,0x41,0x22,0x1c,0x00 }, // ) 0x29 41 { 0x14,0x08,0x3e,0x08,0x14 }, // * 0x2a 42 { 0x08,0x08,0x3e,0x08,0x08 }, ...

Citizens Augmenting Government Waste

So here we have Microsoft-funded “ Citizens Against Government Waste ” (CAGW) heavily criticising Massachusetts’s switch to an internationally accepted and open document standard (not open source, open standard — but I seem to remember a large monopolist who frequently confuses the two when it suits them). I remember CAGW, they were the organisation who had dead people writing in to support Microsoft in court a few years ago — thanks to sbergman27 for the link — is this “the dead hand of CAGW” at work again? Let’s follow the money and find out. Who stands to lose the most money and control if Massachusetts switches to an unencumbered document format? Big surprise, it’s CAGW sponsor Microsoft, through their dominant MS-Office suite. Why did CAGW list Microsoft’s suite last, after two other much-less-dominant examples which are waning anyway? If you’re inclined to wallow in additional irony, consider that at leas...