<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Obfuscating Emails Revisited</title>
	<atom:link href="http://blog.macromates.com/2007/obfuscating-emails-revisited/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/</link>
	<description>TextMate and OS X</description>
	<lastBuildDate>Wed, 03 Feb 2010 16:53:43 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: Obfuscate no more: why your email address should go au naturale - Jason Priem</title>
		<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/#comment-3783</link>
		<dc:creator>Obfuscate no more: why your email address should go au naturale - Jason Priem</dc:creator>
		<pubDate>Tue, 12 May 2009 21:12:48 +0000</pubDate>
		<guid isPermaLink="false">http://macromates.com/blog/2007/obfuscating-emails-revisited/#comment-3783</guid>
		<description>&lt;p&gt;[...] are too many js methods to cover in any detail here.  Some are better than others; a few try to degrade gracefully for users without Javascript support.  All of them, though, share [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] are too many js methods to cover in any detail here.  Some are better than others; a few try to degrade gracefully for users without Javascript support.  All of them, though, share [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: links for 2009-04-17 &#171; Amy G. Dala</title>
		<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/#comment-3707</link>
		<dc:creator>links for 2009-04-17 &#171; Amy G. Dala</dc:creator>
		<pubDate>Fri, 17 Apr 2009 22:40:52 +0000</pubDate>
		<guid isPermaLink="false">http://macromates.com/blog/2007/obfuscating-emails-revisited/#comment-3707</guid>
		<description>&lt;p&gt;[...] TextMate Blog » Obfuscating Emails Revisited (tags: email javascript web_dev utilities) [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] TextMate Blog » Obfuscating Emails Revisited (tags: email javascript web_dev utilities) [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Brandon</title>
		<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/#comment-2935</link>
		<dc:creator>Brandon</dc:creator>
		<pubDate>Sun, 02 Dec 2007 22:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://macromates.com/blog/2007/obfuscating-emails-revisited/#comment-2935</guid>
		<description>&lt;p&gt;I&#039;m fairly new to Rails, and I&#039;m not exactly sure what to do with the script?  Is it a plugin?  Do I call it using before_filter?  Is there a special place I should put it?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I&#039;m fairly new to Rails, and I&#039;m not exactly sure what to do with the script?  Is it a plugin?  Do I call it using before_filter?  Is there a special place I should put it?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: kameko</title>
		<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/#comment-2868</link>
		<dc:creator>kameko</dc:creator>
		<pubDate>Fri, 09 Nov 2007 06:05:35 +0000</pubDate>
		<guid isPermaLink="false">http://macromates.com/blog/2007/obfuscating-emails-revisited/#comment-2868</guid>
		<description>&lt;p&gt;interesting that bob has not returned with this magical $20 shareware harvesting tool.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>interesting that bob has not returned with this magical $20 shareware harvesting tool.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: thyncology &#187; Blog Archive &#187; Email Entitizer</title>
		<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/#comment-2866</link>
		<dc:creator>thyncology &#187; Blog Archive &#187; Email Entitizer</dc:creator>
		<pubDate>Wed, 07 Nov 2007 11:13:07 +0000</pubDate>
		<guid isPermaLink="false">http://macromates.com/blog/2007/obfuscating-emails-revisited/#comment-2866</guid>
		<description>&lt;p&gt;[...] by a recent ongoing dialog on the TextMate blog about obfuscating email addresses to prevent spambots from scraping and foiling their [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] by a recent ongoing dialog on the TextMate blog about obfuscating email addresses to prevent spambots from scraping and foiling their [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Bob</title>
		<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/#comment-2796</link>
		<dc:creator>Bob</dc:creator>
		<pubDate>Mon, 22 Oct 2007 10:00:29 +0000</pubDate>
		<guid isPermaLink="false">http://macromates.com/blog/2007/obfuscating-emails-revisited/#comment-2796</guid>
		<description>&lt;p&gt;Allen, I&#039;ve asked the friend that gave me the software if he still has it. I&#039;ll let you know..&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Allen, I&#039;ve asked the friend that gave me the software if he still has it. I&#039;ll let you know..</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Allan Odgaard</title>
		<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/#comment-2781</link>
		<dc:creator>Allan Odgaard</dc:creator>
		<pubDate>Thu, 18 Oct 2007 10:48:25 +0000</pubDate>
		<guid isPermaLink="false">http://macromates.com/blog/2007/obfuscating-emails-revisited/#comment-2781</guid>
		<description>&lt;p&gt;So bob, we have gone from the method being &lt;em&gt;“utterly useless”&lt;/em&gt; to you recalling having seen a shareware program that could decipher addresses? ;)&lt;/p&gt;

&lt;p&gt;Do you recall any details about this program? Like what type of enciphering did you do, that the program broke?&lt;/p&gt;

&lt;p&gt;Don’t get me wrong, I know this is a cat &amp; mouse game, and I certainly do not consider this method anywhere near unbreakable. I can just report that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Based on a test I did, entity-encoded emails are safe from harvesters&lt;/li&gt;
&lt;li&gt;I get no spam to the addresses listed (and enciphered) on these page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So the cat (harvester) is not too concerned with winning the game (likely because there is far to much low-hanging fruit out there).&lt;/p&gt;

&lt;p&gt;But even if the cat awakes, I am pretty optimistic, since legitimate use of email addresses will always be done by a human, and no script can fully mimic a human.&lt;/p&gt;

&lt;p&gt;The question is how do we make the least obtrusive turing test?&lt;/p&gt;

&lt;p&gt;Two ideas I am presently pondering is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use &lt;code&gt;XMLHttpRequest&lt;/code&gt; both to fetch the valid address, but also (as a trap) blacklist the client’s IP (or feed it bad data) — a script is likely to follow the wrong path, for a human, use of CSS can make that near impossible.&lt;/li&gt;
&lt;li&gt;Use DOM events, e.g. check that &lt;code&gt;mouseEnter&lt;/code&gt; was actually called for the link clicked — we could require more intricate “gestures” to be performed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I have some concerns though about a) making it easy to automatically obfuscate a page (so requiring server support for &lt;code&gt;XMLHttpRequest&lt;/code&gt; is maybe not ideal) and  b) still support browsers w/o JavaScript, non-mouse users, etc. One solution to that problem though could be, to always provide challenge/response protected email addresses by default, and then have JavaScript alter them to non-protected addresses, when the turing test has determined the page is viewed by a human.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>So bob, we have gone from the method being <em>“utterly useless”</em> to you recalling having seen a shareware program that could decipher addresses? ;)</p>

<p>Do you recall any details about this program? Like what type of enciphering did you do, that the program broke?</p>

<p>Don’t get me wrong, I know this is a cat &amp; mouse game, and I certainly do not consider this method anywhere near unbreakable. I can just report that:</p>

<ol>
<li>Based on a test I did, entity-encoded emails are safe from harvesters</li>
<li>I get no spam to the addresses listed (and enciphered) on these page.</li>
</ol>

<p>So the cat (harvester) is not too concerned with winning the game (likely because there is far to much low-hanging fruit out there).</p>

<p>But even if the cat awakes, I am pretty optimistic, since legitimate use of email addresses will always be done by a human, and no script can fully mimic a human.</p>

<p>The question is how do we make the least obtrusive turing test?</p>

<p>Two ideas I am presently pondering is:</p>

<ol>
<li>Use <code>XMLHttpRequest</code> both to fetch the valid address, but also (as a trap) blacklist the client’s IP (or feed it bad data) — a script is likely to follow the wrong path, for a human, use of CSS can make that near impossible.</li>
<li>Use DOM events, e.g. check that <code>mouseEnter</code> was actually called for the link clicked — we could require more intricate “gestures” to be performed.</li>
</ol>

<p>I have some concerns though about a) making it easy to automatically obfuscate a page (so requiring server support for <code>XMLHttpRequest</code> is maybe not ideal) and  b) still support browsers w/o JavaScript, non-mouse users, etc. One solution to that problem though could be, to always provide challenge/response protected email addresses by default, and then have JavaScript alter them to non-protected addresses, when the turing test has determined the page is viewed by a human.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: bob</title>
		<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/#comment-2777</link>
		<dc:creator>bob</dc:creator>
		<pubDate>Tue, 16 Oct 2007 18:55:58 +0000</pubDate>
		<guid isPermaLink="false">http://macromates.com/blog/2007/obfuscating-emails-revisited/#comment-2777</guid>
		<description>&lt;p&gt;It&#039;s a shame I lost the program, but i&#039;ve spent a lot of time working on spam-protecting email addresses. Then, a friend showed me a $20 windows shareware tool that can be used to harvest email addresses from webpages. It found all addresses that were only visible after parsing javascript, and it was also pretty good at evading spam-traps (when they were hidden using CSS or javascript, it would just ignore them)&lt;/p&gt;

&lt;p&gt;If this method works for you: great, but don&#039;t be surprised if one day you&#039;ll find that you name is on the spam lists.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>It&#039;s a shame I lost the program, but i&#039;ve spent a lot of time working on spam-protecting email addresses. Then, a friend showed me a $20 windows shareware tool that can be used to harvest email addresses from webpages. It found all addresses that were only visible after parsing javascript, and it was also pretty good at evading spam-traps (when they were hidden using CSS or javascript, it would just ignore them)</p>

<p>If this method works for you: great, but don&#039;t be surprised if one day you&#039;ll find that you name is on the spam lists.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Allan Odgaard</title>
		<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/#comment-2757</link>
		<dc:creator>Allan Odgaard</dc:creator>
		<pubDate>Tue, 09 Oct 2007 14:16:33 +0000</pubDate>
		<guid isPermaLink="false">http://macromates.com/blog/2007/obfuscating-emails-revisited/#comment-2757</guid>
		<description>&lt;p&gt;If bots start to run JavaScript (while harvesting email addresses) then we can litter our pages with traps, i.e. put up invisible links to pages that lead to running infinite loops, or even report infested machines via &lt;code&gt;XMLHttpRequest&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Meanwhile I can report that I receive zero spam for the JavaScript-obfuscated addresses published at this site (and they have been here for quite some time).&lt;/p&gt;

&lt;p&gt;Based on a &lt;a href=&quot;http://macromates.com/blog/2006/obfuscating-email-addresses/&quot; rel=&quot;nofollow&quot;&gt;previous test I did&lt;/a&gt; it seems majority of harvesting bots doesn’t even entity-decode pages fetched.&lt;/p&gt;

&lt;p&gt;So what are you basing your comment on Bob?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>If bots start to run JavaScript (while harvesting email addresses) then we can litter our pages with traps, i.e. put up invisible links to pages that lead to running infinite loops, or even report infested machines via <code>XMLHttpRequest</code>.</p>

<p>Meanwhile I can report that I receive zero spam for the JavaScript-obfuscated addresses published at this site (and they have been here for quite some time).</p>

<p>Based on a <a href="http://macromates.com/blog/2006/obfuscating-email-addresses/" rel="nofollow">previous test I did</a> it seems majority of harvesting bots doesn’t even entity-decode pages fetched.</p>

<p>So what are you basing your comment on Bob?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Guillaume Rischard</title>
		<link>http://blog.macromates.com/2007/obfuscating-emails-revisited/#comment-2756</link>
		<dc:creator>Guillaume Rischard</dc:creator>
		<pubDate>Tue, 09 Oct 2007 14:06:15 +0000</pubDate>
		<guid isPermaLink="false">http://macromates.com/blog/2007/obfuscating-emails-revisited/#comment-2756</guid>
		<description>&lt;p&gt;Sure they can parse javascript, but is it worth the cost? You have a harvesting bot. You find a bunch of javascript. Do you take the time to run it, hoping it has an email address, or just go to the next chunk of text?&lt;/p&gt;

&lt;p&gt;Running a simple regular expression on the input will always be many times more efficient, in terms of email addresses harvested/time, than running the javascript on the page.&lt;/p&gt;

&lt;p&gt;If this method becomes common enough and computers fast enough to make running the javascript worth it, the code can always be made more complex, to make the decoding of email addresses slower.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Sure they can parse javascript, but is it worth the cost? You have a harvesting bot. You find a bunch of javascript. Do you take the time to run it, hoping it has an email address, or just go to the next chunk of text?</p>

<p>Running a simple regular expression on the input will always be many times more efficient, in terms of email addresses harvested/time, than running the javascript on the page.</p>

<p>If this method becomes common enough and computers fast enough to make running the javascript worth it, the code can always be made more complex, to make the decoding of email addresses slower.</p>]]></content:encoded>
	</item>
</channel>
</rss>

