{"id":193,"date":"2006-06-22T14:39:31","date_gmt":"2006-06-22T14:39:31","guid":{"rendered":"http:\/\/neosmart.net\/blog\/archives\/193"},"modified":"2013-08-26T18:09:53","modified_gmt":"2013-08-26T23:09:53","slug":"javascript-protection-dont-fall-for-it","status":"publish","type":"post","link":"https:\/\/neosmart.net\/blog\/javascript-protection-dont-fall-for-it\/","title":{"rendered":"JavaScript &ldquo;Protection:&rdquo; Don&#39;t Fall for it!"},"content":{"rendered":"<p>Every once in a while it comes up again. JavaScript &#8211; used totally wrong. This times it&#8217;s Hivelogic&#8217;s <a href=\"http:\/\/hivelogic.com\/enkoder\/\" rel=\"follow\">&#8220;Enkoder&#8221; script<\/a> <a href=\"http:\/\/weblogtoolscollection.com\/archives\/2006\/06\/21\/wp-plugin-phpenkoder\/\" rel=\"follow\">reborn for Wordpress<\/a>. What people just don&#8217;t get is: JavaScript was never meant to be used as a heavy cavalry, a knight in shining armor, or else a bit of code that <strike>can<\/strike> may be used to do anything &#8211; because it&#8217;s not.<\/p>\n<p>JavaScript <em>can<\/em> do a lot of things, but that doesn&#8217;t mean it should be used that way. But that&#8217;s not the problem &#8211; not this time. The problem is that people are still insisting on believing that using JavaScript to hide text means that the bad guys won&#8217;t ever see it. But that&#8217;s just not true. <\/p>\n<p><!--more--><\/p>\n<p>For one thing, as we all know, the weapons reach the bad guys first, and it takes a long time for the &#8220;good guys&#8221; to get them later. Just because GoogleBot and Yahoo! Crawler don&#8217;t exactly understand JS-rendered text, doesn&#8217;t mean that the spam bots, email harvesters, blog spammers, and more don&#8217;t. As a matter of fact, more spam bots come to NeoSmart Technologies with javascript enabled engines than authentic users with JS enabled browsers (stats thanks to SpamKarma 2) &#8211; and they&#8217;re on your site too.<\/p>\n<p>Just like people <strong>insist<\/strong> on writing their emails as <code>ramblings [at] neosmart dot net<\/code> or one of it&#8217;s variations, and it never occurs to them that spambots can harvest these just as well as they can <code>ComputerGuru@NeoSmart.net<\/code> with or without the mailto: entity defined, it just doesn&#8217;t matter. It takes the code masters over at HiveLogic a month or more to write such a complicated algorithm, but it takes spam bot and email harvester authors mere hours to add JS processing to their engines &#8211; and all of a sudden everyone is vulnerable.<\/p>\n<p>There really is no <em>good<\/em> way to prevent an email address from being listed in spam directories and sold in bulk along with thousands of others to spammers around the web &#8211; especially not image renders of email addresses, OCR is actually a rather practical method once combined with baesian filters to identify a likely email-in-image target. The best thing one <em>can<\/em> do is to sign up for a good email service if you use free webmail (don&#8217;t use AOL, Hotmail, Walla, WowMail, SpyMac, or most others; use Yahoo!, Live.com, or GMail if you have to), or if you have your own MX server, invest in a quality spam-control engine (don&#8217;t use BrightMail or anything else Symantec!). If it&#8217;s too late to change whatever it is that you picked or your email address is all over the web such that it doesn&#8217;t make a difference, get a decent client-side program instead (reviews to come!).<\/p>\n<p>Remember, you can never beat them completely, just do your best to bat them away. Using disposable email addresses helps, but it&#8217;s not the best way since spammers will send messages to random email addresses and bookmark those that don&#8217;t bounce back &#8211; you really can&#8217;t win outright, just keep trying.<\/p>\n<p>However (and this is important!) Hivelogic deserves recognition for their algorithm. I personally used it the month it went public (3 or 4 years ago?), and it was a great idea, the innovation is there, and it definitely worked for a couple of years, but times change and technology swarms and grows, and nothing lasts forever. If you really want security via obsecurity, then this is your award-winning horse that&#8217;ll take you quite far, but remember, no one is perfect, and nothing lasts forever.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Every once in a while it comes up again. JavaScript &#8211; used totally wrong. This times it&#8217;s Hivelogic&#8217;s &#8220;Enkoder&#8221; script reborn for Wordpress. What people just don&#8217;t get is: JavaScript was never meant to be used as a heavy cavalry, &hellip; <a href=\"https:\/\/neosmart.net\/blog\/javascript-protection-dont-fall-for-it\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[76,54],"class_list":["post-193","post","type-post","status-publish","format-standard","hentry","category-software","tag-javascript","tag-wordpress"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4xDa-37","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/comments?post=193"}],"version-history":[{"count":1,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":1979,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/193\/revisions\/1979"}],"wp:attachment":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/media?parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/categories?post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/tags?post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}