<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bad Behavior / Bad Behaviour &#187; Open Source</title>
	<atom:link href="http://bad-behavior.ioerror.us/category/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://bad-behavior.ioerror.us</link>
	<description>The Web&#039;s premier link spam killer.</description>
	<lastBuildDate>Wed, 16 May 2012 15:16:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>WP-SpamFree</title>
		<link>http://bad-behavior.ioerror.us/2008/07/08/wp-spamfree/</link>
		<comments>http://bad-behavior.ioerror.us/2008/07/08/wp-spamfree/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 03:19:17 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[Blog Spam]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[WP-SpamFree]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=150</guid>
		<description><![CDATA[There&#8217;s a whole lot of buzz about the newest WordPress spam-fighting plugin on the block, and so I decided to go take a look and see if WP-SpamFree lives up to its hype. &#8220;The WP-SpamFree plugin virtually eliminates automated comment spam from bots, including trackback and pingback spam,&#8221; its author, Scott Allen, claims. &#8220;It takes [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a whole lot of buzz about the newest WordPress spam-fighting plugin on the block, and so I decided to go take a look and see if <a href="http://www.polepositionmarketing.com/library/wp-spamfree/">WP-SpamFree</a> lives up to its hype.</p>
<p>&#8220;The WP-SpamFree plugin virtually eliminates automated comment spam from bots, including trackback and pingback spam,&#8221; its author, Scott Allen, claims. &#8220;It takes a different approach than most and stops spam at the door.&#8221;</p>
<p>Indeed, everyone who&#8217;s tried it <a href="http://www.polepositionmarketing.com/emp/">reports</a> that their spam has dropped off to virtually zero and that they haven&#8217;t heard from anybody who had problems leaving comments. Sounds like the Holy Grail of spam prevention, right?</p>
<p>Not so fast.</p>
<p>WP-SpamFree, it turns out, uses JavaScript and cookies to verify that someone is using an actual web browser to access your site and leave a comment. These approaches are not that different from what other plugins have done in the past. What distinguishes WP-SpamFree in this respect is that it requires both JavaScript <em>and</em> cookies in order for someone to post a comment. This will certainly keep out virtually every spambot out there.</p>
<p>Unfortunately, it will also block most mobile web browsers and <a href="http://www.joedolson.com/articles/2008/06/spam-vs-accessibility/">some disabled users</a>. In both cases the browsers being used aren&#8217;t capable of JavaScript, cookies, or both. If your blog targets mobile web users or people with disabilities, WP-SpamFree might not be for you.</p>
<p>Then there is WP-SpamFree&#8217;s method of blocking trackback and pingback spam. These are always automated, so using JavaScript and cookies is impossible. WP-SpamFree, it turns out, uses several extensive internal lists of IP addresses, URL fragments, and keywords to block this type of spam.</p>
<p>This works fairly well; however, the way it&#8217;s implemented in the current version of WP-SpamFree (1.9.6.2) is quite strange. It appears the author didn&#8217;t want to use <a href="http://www.php.net/manual/en/language.types.array.php">arrays</a> and <a href="http://www.php.net/manual/en/control-structures.foreach.php">loops</a> to iterate through his lists and instead <a href="http://en.wikipedia.org/wiki/Loop_unwinding">unrolled all his loops</a>, resulting in a huge plugin clocking in at over 3,700 lines. There&#8217;s no obvious good reason for this; it would seem in PHP that the plugin would be much slower than it would otherwise. The gain of not having the loops doesn&#8217;t seem nearly as much as the overhead of compiling thousands of extra lines of bytecode. In addition there are several other examples of <a href="http://en.wikipedia.org/wiki/Duplicate_code">duplicate code</a> which could have been split into functions.</p>
<p>These technical implementation issues make me wonder at how much experience the programmer has. If they were intentionally done by an experienced programmer, I would have expected them to be mentioned in the README or release notes or a blog entry, but especially in the code comments.</p>
<p>Despite those issues, the plugin works pretty well for what it does. I hope that the author addresses those implementation issues for his next major version, though, to make the plugin even better.</p>
<p>And there are things that WP-SpamFree does not do. It does not block email harvesters, for instance. It also does not block spambots when they scrape your site looking for your comment forms, nor block denial of service attacks. Indeed, under a heavy spam attack, its size and CPU usage could cause limited web hosting resources to be exhausted.</p>
<p>That&#8217;s all just a long way of saying that WP-SpamFree has its pros and cons, and if you choose to use WP-SpamFree, you still should keep Bad Behavior around as part of your overall <a href="http://bad-behavior.ioerror.us/documentation/spam-prevention-strategy/">spam prevention strategy</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bad-behavior.ioerror.us/2008/07/08/wp-spamfree/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Bad Behavior protects WordPress.com</title>
		<link>http://bad-behavior.ioerror.us/2005/08/20/bad-behavior-protects-wordpresscom/</link>
		<comments>http://bad-behavior.ioerror.us/2005/08/20/bad-behavior-protects-wordpresscom/#comments</comments>
		<pubDate>Sat, 20 Aug 2005 19:01:08 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/2005/08/20/bad-behavior-protects-wordpresscom/</guid>
		<description><![CDATA[Running behind the scenes of Matt Mullenweg&#8216;s new commercial WordPress project, WordPress.com, is of course WordPress, everyone&#8217;s favorite blogging platform. And running on WordPress.com is Bad Behavior, the premier solution for blog spam. Mullenweg attended the Blog Business Summit in San Francisco this week to promote WordPress.com as a corporate blogging platform competing with Six [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png" alt="Bad Behavior" /></a> <a href="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png" alt="Bad Behaviour" /></a> <a href="https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&amp;SESSION=9meqMUtsNAw4dxpGS6CSAVdQTiHwGc6CnyJCzvjrQCVordZNNyDrTOZ3c7G&amp;dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b08198ad5733caaf944cbac24b2728ea935a7c"><img alt="Make a Donation. " src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" /></a></p>
<p>Running behind the scenes of <a href="http://ma.tt/">Matt Mullenweg</a>&#8216;s new commercial WordPress project, <a href="http://wordpress.com/">WordPress.com</a>, is of course <a href="http://wordpress.org/">WordPress</a>, everyone&#8217;s favorite blogging platform. And running on WordPress.com is <a href="/">Bad Behavior</a>, the premier solution for blog spam.</p>
<p><span id="more-128"></span></p>
<p>Mullenweg attended the Blog Business Summit in San Francisco this week to promote WordPress.com as a corporate blogging platform competing with Six Apart&#8217;s TypePad service. WordPress.com is currently in an invitation-only phase as it ramps up to full service.</p>
<p><a href="http://matt.wordpress.com/2005/08/19/presentation-feedback/">At the summit</a> Mullenweg said one of the main features of WordPress.com, which will cause people to choose it over TypePad, is better spam protection. WordPress.com uses Bad Behavior as its primary line of defense against blog spam.</p>
<p>Bad Behavior works by analyzing the entirety of incoming <acronym title="Hypertext Transfer Protocol">HTTP</acronym> requests to ensure that they match profiles of legitimate browsers, and don&#8217;t match profiles of known spammers. In addition to WordPress, Bad Behavior also runs on MediaWiki, Geeklog, and Drupal, and can be integrated easily into any PHP-based software. Bad Behavior is the only software known to exist which uses this approach, and in practice eliminates virtually all incoming spam while remaining very fast.</p>
<p>I&#8217;m proud to have Bad Behavior running on WordPress.com, and I&#8217;m proud to support WordPress.com, and all WordPress bloggers, in the fight against blog spam. Like WordPress, Bad Behavior is released under the GNU General Public License, and development of Bad Behavior is funded through user contributions. If you would like to contribute to further development of Bad Behavior, <a href="https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&amp;SESSION=9meqMUtsNAw4dxpGS6CSAVdQTiHwGc6CnyJCzvjrQCVordZNNyDrTOZ3c7G&amp;dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b08198ad5733caaf944cbac24b2728ea935a7c">click here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bad-behavior.ioerror.us/2005/08/20/bad-behavior-protects-wordpresscom/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 1.2</title>
		<link>http://bad-behavior.ioerror.us/2005/08/16/bad-behavior-12/</link>
		<comments>http://bad-behavior.ioerror.us/2005/08/16/bad-behavior-12/#comments</comments>
		<pubDate>Tue, 16 Aug 2005 15:13:09 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/2005/08/16/bad-behavior-12/</guid>
		<description><![CDATA[Update August 19: Bad Behavior is now available for Drupal. Bad Behavior 1.2 has been released. Bad Behavior stops link spam at the front door by denying spammers the ability to access your PHP-based web site at all. Thanks to all of you who tested the release candidates, and actually found fewer bugs than I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png" alt="Bad Behavior" /></a> <a href="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png" alt="Bad Behaviour" /></a></p>
<p><a href="https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&amp;SESSION=9meqMUtsNAw4dxpGS6CSAVdQTiHwGc6CnyJCzvjrQCVordZNNyDrTOZ3c7G&amp;dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b08198ad5733caaf944cbac24b2728ea935a7c"><img alt="Make a Donation. " src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" /></a></p>
<p><strong>Update August 19</strong>: Bad Behavior is <a href="http://www.angier.co.uk/david/2005-08-19-drupal-bad-behaviour">now available for Drupal</a>.</p>
<p>Bad Behavior 1.2 has been released. Bad Behavior stops <a href="http://en.wikipedia.org/wiki/Link_spam" rel="tag">link spam</a> at the front door by denying spammers the ability to access your PHP-based web site at all.</p>
<p>Thanks to all of you who tested the release candidates, and actually found fewer bugs than I was expecting. Either I&#8217;m getting better at this, or you guys aren&#8217;t actually installing the software. <img src='http://bad-behavior.ioerror.us/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-127"></span></p>
<p>New in this release:</p>
<ul>
<li>Bad Behavior now has whitelisting capability. Edit the file <code>bad-behavior-whitelist.php</code> to add any IP address ranges or user agents you need to whitelist for your particular site. (Note that search engine bots should <strong>not</strong> be whitelisted by user agent, but by IP address range, because spammers pretend to be search engine bots. Bad Behavior already passes all major search engine bots which behave properly.)</li>
<li>The specific reason for blocking is now logged in the database. This will help in determining whether new robots should be blocked by Bad Behavior or not.</li>
<li>Several additional spammers have been identified and blocked in this release.</li>
<li>When logging is turned on, Bad Behavior will identify spammers it has recently seen, even if their profile changes, and continue to block them.</li>
</ul>
<p><a href="/download/">Download Bad Behavior</a> now!</p>
]]></content:encoded>
			<wfw:commentRss>http://bad-behavior.ioerror.us/2005/08/16/bad-behavior-12/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 1.2 Release Candidate 3</title>
		<link>http://bad-behavior.ioerror.us/2005/08/11/bad-behavior-12-release-candidate-3/</link>
		<comments>http://bad-behavior.ioerror.us/2005/08/11/bad-behavior-12-release-candidate-3/#comments</comments>
		<pubDate>Thu, 11 Aug 2005 05:30:58 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/2005/08/11/bad-behavior-12-release-candidate-3/</guid>
		<description><![CDATA[Bad Behavior 1.2 Release Candidate 3 has been posted. Bad Behavior stops link spam at the front door by denying spammers the ability to access your PHP-based web site at all. As I close in on a final 1.2 release, the reports I have gotten have been quite encouraging. Most testers have reported a complete [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png" alt="Bad Behavior" /></a> <a href="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png" alt="Bad Behaviour" /></a></p>
<p><a href="https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&amp;SESSION=9meqMUtsNAw4dxpGS6CSAVdQTiHwGc6CnyJCzvjrQCVordZNNyDrTOZ3c7G&amp;dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b08198ad5733caaf944cbac24b2728ea935a7c"><img alt="Make a Donation. " src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" /></a></p>
<p>Bad Behavior 1.2 Release Candidate 3 has been posted. Bad Behavior stops <a href="http://en.wikipedia.org/wiki/Link_spam" rel="tag">link spam</a> at the front door by denying spammers the ability to access your PHP-based web site at all.</p>
<p>As I close in on a final 1.2 release, the reports I have gotten have been quite encouraging. Most testers have reported a complete elimination of link spam to their sites. So I&#8217;ve cleaned up a bit, fixed one problem, and this will probably be the final 1.2 release, or very close to it.</p>
<p><span id="more-126"></span></p>
<p>New in this release:</p>
<ul>
<li>A bug in Opera causes it to be incorrectly identified as a spambot by Bad Behavior. The check has been temporarily disabled until I can confirm that Opera has fixed its browser.</li>
<li>Bad Behavior no longer sends any data to the Bad Behavior Blackhole. This proved entirely unnecessary, as Bad Behavior appears perfectly capable of catching spambots on its own without outside help.</li>
</ul>
<p>New since version 1.1.4:</p>
<ul>
<li>Bad Behavior now has whitelisting capability. Edit the file <code>bad-behavior-whitelist.php</code> to add any IP address ranges or user agents you need to whitelist for your particular site. (Note that search engine bots should <strong>not</strong> be whitelisted by user agent, but by IP address range, because spammers pretend to be search engine bots. Bad Behavior already passes all major search engine bots which behave properly.)</li>
<li>The specific reason for blocking is now logged in the database. This will help in determining whether new robots should be blocked by Bad Behavior or not.</li>
<li>Several additional spammers have been identified and blocked in this release.</li>
<li>When logging is turned on, Bad Behavior will identify spammers it has recently seen, even if their profile changes, and continue to block them.</li>
</ul>
<p><strong>Update 16 August</strong>: See <a href="/2005/08/16/bad-behavior-12/">Bad Behavior 1.2</a> release.</p>
]]></content:encoded>
			<wfw:commentRss>http://bad-behavior.ioerror.us/2005/08/11/bad-behavior-12-release-candidate-3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 1.2 Release Candidate 2</title>
		<link>http://bad-behavior.ioerror.us/2005/08/08/bad-behavior-12-release-candidate-2/</link>
		<comments>http://bad-behavior.ioerror.us/2005/08/08/bad-behavior-12-release-candidate-2/#comments</comments>
		<pubDate>Tue, 09 Aug 2005 03:53:47 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/2005/08/08/bad-behavior-12-release-candidate-2/</guid>
		<description><![CDATA[The second release candidate of version 1.2 of Bad Behavior is now available! Bad Behavior stops link spam at the front door by denying spammers the ability to access your PHP-based web site at all. Surprisingly, no one reported any bugs in the first release candidate, but a very few spammers are still making it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png" alt="Bad Behavior" /></a> <a href="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png" alt="Bad Behaviour" /></a></p>
<p><a href="https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&amp;SESSION=9meqMUtsNAw4dxpGS6CSAVdQTiHwGc6CnyJCzvjrQCVordZNNyDrTOZ3c7G&amp;dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b08198ad5733caaf944cbac24b2728ea935a7c"><img alt="Make a Donation. " src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" /></a></p>
<p>The second release candidate of version 1.2 of Bad Behavior is now available! Bad Behavior stops <a href="http://en.wikipedia.org/wiki/Link_spam" rel="tag">link spam</a> at the front door by denying spammers the ability to access your PHP-based web site at all.</p>
<p>Surprisingly, no one reported any bugs in the first release candidate, but a very few spammers are still making it through. So I&#8217;ve made an update which attempts to address this and get that last 0.1% of the spam.</p>
<p>New from <a href="/2005/08/08/bad-behavior-12-release-candidate-1/">version 1.2 Release Candidate 1</a>: When logging is turned on, Bad Behavior will identify spammers it has recently seen, even if their profile changes, and continue to block them. I believe this simple change should eliminate virtually all spam, even at the highest-traffic sites, while remaining fast.</p>
<p>Again, I still need reports of any spammers which escape Bad Behavior&#8217;s notice. Please <a href="mailto:badbots@ioerror.us">contact me</a> and include output from phpMyAdmin showing the relevant records for the spammer. Verbose logging has been turned on for this build so that the necessary records will be available if this happens.</p>
<p><strong>Update August 11</strong>: Please see the newer version <a href="/2005/08/11/bad-behavior-12-release-candidate-3/">Bad Behavior 1.2 Release Candidate 3</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bad-behavior.ioerror.us/2005/08/08/bad-behavior-12-release-candidate-2/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 1.2 Release Candidate 1</title>
		<link>http://bad-behavior.ioerror.us/2005/08/08/bad-behavior-12-release-candidate-1/</link>
		<comments>http://bad-behavior.ioerror.us/2005/08/08/bad-behavior-12-release-candidate-1/#comments</comments>
		<pubDate>Mon, 08 Aug 2005 07:22:18 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/2005/08/08/bad-behavior-12-release-candidate-1/</guid>
		<description><![CDATA[The first release candidate for Bad Behavior 1.2 is now available. Bad Behavior, the bane of link spammers everywhere, has been strong and stable. I&#8217;ve added some new features and need your feedback. Bad Behavior now has whitelisting capability. Edit the file bad-behavior-whitelist.php to add any IP address ranges or user agents you need to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png" alt="Bad Behavior" /></a> <a href="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png" alt="Bad Behaviour" /></a></p>
<p><a href="https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&amp;SESSION=9meqMUtsNAw4dxpGS6CSAVdQTiHwGc6CnyJCzvjrQCVordZNNyDrTOZ3c7G&amp;dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b08198ad5733caaf944cbac24b2728ea935a7c"><img alt="Make a Donation. " src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" /></a></p>
<p>The first release candidate for Bad Behavior 1.2 is now available. Bad Behavior, the bane of <a href="http://en.wikipedia.org/wiki/Link_spam" rel="tag">link spammers</a> everywhere, has been strong and stable. I&#8217;ve added some new features and need your feedback.</p>
<p><span id="more-124"></span></p>
<ul>
<li>Bad Behavior now has whitelisting capability. Edit the file <code>bad-behavior-whitelist.php</code> to add any IP address ranges or user agents you need to whitelist for your particular site. (Note that search engine bots should <strong>not</strong> be whitelisted by user agent, but by IP address range, because spammers pretend to be search engine bots. Bad Behavior already passes all major search engine bots which behave properly.)</li>
<li>The specific reason for blocking is now logged in the database. This will help in determining whether new robots should be blocked by Bad Behavior or not.</li>
<li>Several additional spammers have been identified and blocked in this release.</li>
<li>Bad Behavior now sends copies of spam received automatically for use in <a href="http://ioerror.us/wp-signup.php?new=dnsbl">Bad Behavior Blackhole</a>. If you don&#8217;t want copies of your spam sent in, edit <code>bad-behavior-blackhole.php</code>.</li>
</ul>
<p>The spammers are starting to use some new techniques and variations on old techniques, and so every so often I must update in order to keep them at bay. Ye olde arms race. This one, however, is about to get much more escalated; as the Bad Behavior Blackhole matures and becomes ready, you should see link spam start to disappear all over the Internet, and especially on your own site.</p>
<p>This release works with MediaWiki, WordPress and in generic mode with any PHP script. It has not yet been updated for Geeklog.</p>
<p>Please test this new release of Bad Behavior and leave your feedback here, or for private feedback or spambot reporting, <a href="mailto:badbots@ioerror.us">contact me</a> instead. To report a spammer or inappropriate blocking, please send the records in the <code>bad_behavior_log</code> table in the database relating to the issue, which you can retrieve using phpMyAdmin. <strong>Update</strong>: I especially need reports of any spammer which manages to get past Bad Behavior at this point. Please send in any that you see. Thanks!</p>
<p>Oh, and don&#8217;t contact me about the YahooSeeker bot. It <em>is</em> misbehaving. And you likely don&#8217;t need it anyway; it&#8217;s only used for Yahoo! Shopping. If you <em>do</em> need to be listed on Yahoo! Shopping, you can whitelist it. The main Yahoo bot is called Slurp, and this is the one that puts you in Yahoo! It passes just fine.</p>
<p><strong>Update August 11</strong>: Please see the newer version <a href="/2005/08/11/bad-behavior-12-release-candidate-3/">Bad Behavior 1.2 Release Candidate 3</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bad-behavior.ioerror.us/2005/08/08/bad-behavior-12-release-candidate-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 1.1.4</title>
		<link>http://bad-behavior.ioerror.us/2005/07/02/bad-behavior-114/</link>
		<comments>http://bad-behavior.ioerror.us/2005/07/02/bad-behavior-114/#comments</comments>
		<pubDate>Sat, 02 Jul 2005 17:00:05 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/2005/07/02/bad-behavior-114/</guid>
		<description><![CDATA[Bad Behavior 1.1.4 has been released. This release fixes a problem with the W3C Validator being blocked inadvertently. The downside is you&#8217;re going to get a few more spammers who were also being blocked. A more permanent solution is in the works, but this should get you XHTML freaks who revalidate your pages daily back [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png" alt="Bad Behavior" /></a> <a href="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png" alt="Bad Behaviour" /></a></p>
<p><a href="https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&amp;SESSION=9meqMUtsNAw4dxpGS6CSAVdQTiHwGc6CnyJCzvjrQCVordZNNyDrTOZ3c7G&amp;dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b08198ad5733caaf944cbac24b2728ea935a7c"><img alt="Make a Donation. " src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" /></a></p>
<p>Bad Behavior 1.1.4 has been released.</p>
<p>This release fixes a problem with the W3C Validator being blocked inadvertently. The downside is you&#8217;re going to get a few more spammers who were also being blocked. A more permanent solution is in the works, but this should get you <acronym title="Extensible Hypertext Markup Language">XHTML</acronym> freaks who revalidate your pages daily back in business.</p>
<p>If you don&#8217;t care at all about the W3C Validator then feel free to use 1.1.3 as it may block a few more spammers than 1.1.4. This will be resolved in a future release.</p>
<p>First, say &#8220;I Hate Perl&#8221; three times, and then <a href="/download/">Download Bad Behavior</a> now!</p>
]]></content:encoded>
			<wfw:commentRss>http://bad-behavior.ioerror.us/2005/07/02/bad-behavior-114/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 1.1.3</title>
		<link>http://bad-behavior.ioerror.us/2005/07/01/bad-behavior-113/</link>
		<comments>http://bad-behavior.ioerror.us/2005/07/01/bad-behavior-113/#comments</comments>
		<pubDate>Fri, 01 Jul 2005 06:16:09 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/2005/07/01/bad-behavior-113/</guid>
		<description><![CDATA[Bad Behavior 1.1.3 has now been released. I&#8217;ve been holding this a little longer than some of you would like; because of a rise in spam attacks and some slightly smarter spammers, a few spams have been getting through to your sites, and because they&#8217;re getting smarter I&#8217;ve wanted to ensure that I could block [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png" alt="Bad Behavior" /></a> <a href="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png" alt="Bad Behaviour" /></a></p>
<p><a href="https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&amp;SESSION=9meqMUtsNAw4dxpGS6CSAVdQTiHwGc6CnyJCzvjrQCVordZNNyDrTOZ3c7G&amp;dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b08198ad5733caaf944cbac24b2728ea935a7c"><img alt="Make a Donation. " src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" /></a></p>
<p>Bad Behavior 1.1.3 has now been released. I&#8217;ve been holding this a little longer than some of you would like; because of a rise in spam attacks and some slightly smarter spammers, a few spams have been getting through to your sites, and because they&#8217;re getting smarter I&#8217;ve wanted to ensure that I could block the spammers and only the spammers. I&#8217;ve blocked all the spammers I can reasonably block and maintain no false positives.</p>
<p>I also fixed a (very uncommon) update service being recognized as a spambot. I have a policy of zero false positives, so if you see traffic that should be getting through and is being blocked, or if you are getting spam to your site, please <a href="mailto:badbots@ioerror.us">report it immediately</a>.</p>
<p>Changed in this release:</p>
<ul>
<li>Several additional spambots have been identified and blocked thanks to user contributions.</li>
<li><a href="http://gemal.dk/mozilla/blogupdates.html">Mozilla Blog Updates</a> is no longer blocked.</li>
<li>A typo causing a PHP warning in <code>bad-behavior-http-headers.php</code> has been fixed.</li>
</ul>
<p>It&#8217;s that time again, so <a href="/download/">Download Bad Behavior</a> now!</p>
]]></content:encoded>
			<wfw:commentRss>http://bad-behavior.ioerror.us/2005/07/01/bad-behavior-113/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Punishing Bad Behavior</title>
		<link>http://bad-behavior.ioerror.us/2005/06/20/punishing-bad-behavior/</link>
		<comments>http://bad-behavior.ioerror.us/2005/06/20/punishing-bad-behavior/#comments</comments>
		<pubDate>Tue, 21 Jun 2005 02:48:53 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/2005/06/20/punishing-bad-behavior/</guid>
		<description><![CDATA[It&#8217;s been two months now since I started the Bad Behavior project. I&#8217;m stopping for a moment to take a look back to see how far it&#8217;s come, and to glance at the journey ahead. In case you somehow don&#8217;t know what I&#8217;m talking about, let me fill you in. Bad Behavior is PHP-based software [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been two months now since I started the <a href="/">Bad Behavior</a> project. I&#8217;m stopping for a moment to take a look back to see how far it&#8217;s come, and to glance at the journey ahead.</p>
<p>In case you somehow don&#8217;t know what I&#8217;m talking about, let me fill you in. Bad Behavior is <a href="http://www.php.net/"><acronym title="PHP: Hypertext Preprocessor">PHP</acronym></a>-based software which blocks automated <a href="http://en.wikipedia.org/wiki/Link_spam" rel="tag">link spam</a>. And link spam is the growing problem of spammers taking advantage of blogs, wikis, forums, guestbooks, CMS, and similar software to post spam. Link spam has been a serious problem for a couple of years, and many people have tackled it with varying degrees of success.</p>
<p><span id="more-121"></span>On the evening of 31 December 2004, I suffered what every blogger experiences eventually: my first <a href="http://en.wikipedia.org/wiki/Comment_spam" rel="tag">comment spam</a> attack. A spammer using automated software and open proxy servers sent 764 spam comments to <a href="http://www.homelandstupidity.us/">my site</a>, only half of which were caught by WordPress. The other half were scattered all over my site. After deleting all of the junk, I responded by writing some code, and thus was born the <a href="http://www.homelandstupidity.us/software/wp-spamassassin/">WordPress SpamAssassin plugin</a>, which filters blog comments through <a href="http://spamassassin.apache.org/">SpamAssassin</a>. It actually proved to be useful at stopping a lot of spam, but wasn&#8217;t able to catch all of it. Throughout the life of wp-spamassassin, the main thing I learned is that email spam and <a href="http://en.wikipedia.org/wiki/Blog_spam">blog spam</a> are two quite different creatures. I finally wound up having WordPress moderate all first-time commenters, and gave up further development of wp-spamassassin around mid-March, recognizing it as not quite appropriate to the task.</p>
<p>At that point I began using the <a href="http://unknowngenius.com/blog/wordpress/spam-karma/dev/">Spam Karma 2</a> WordPress plugin. It proved quite effective at keeping spam off my site, but it has two serious drawbacks: first, the spam is still there in your database and if you get a lot of spam you have to spend a lot of time managing it, and second, it invariably would catch legitimate comments and mark them as spam, making the spam management problem far worse than it would otherwise be.</p>
<p>I want to spend my time blogging. I don&#8217;t want to spend my time scouring through 1,000 or more spams a day for the three comments that were thrown in by mistake. But there simply was no other solution I could live with. They either required a <a href="http://en.wikipedia.org/wiki/Captcha" rel="tag">captcha</a>, which isn&#8217;t accessible to some people with disabilities, or required JavaScript, which many people turn off and also isn&#8217;t accessible to some people with disabilities, or had too high a false positive rate, or too high a false negative rate, or&#8230;</p>
<p>At some point I realized there was an approach it seemed no one had tried yet. I did several Google searches looking for any evidence that anyone had tried this approach with any software on any blog, forum, wiki or CMS, and came up empty. I began coding, and about a week later I put out the <a href="/2005/04/24/bad-behavior-10-rc1/">first release candidate of Bad Behavior</a>.</p>
<p>The premise behind Bad Behavior is not to analyze the comment, but to analyze the visitor. The idea I had had was that if the spam is automated, the spambot software must be distinguishable from actual people reading your site. But spambots typically fake the User-Agent and Referer fields in the <acronym title="Hypertext Transfer Protocol">HTTP</acronym> request. What else is there to work with? As it turns out, there are quite a few other fields in the HTTP header that can be analyzed, if only you know what they are and how to get at them. And it turns out that spambots do have a fingerprint that allows them to be distinguished from the Web browsers they pretend to be.</p>
<p>I designed Bad Behavior to be fast and portable to PHP-based software other than WordPress and to err on the side of caution, allowing a user through if there is doubt as to whether it is a spambot, so as to minimize false positives. Accordingly, Bad Behavior became wildly successful in a very short time, even beyond my initial expectations. So many people have downloaded it and used it that I can&#8217;t even count them all in any reasonable manner. People are even writing <a href="http://ajaydsouza.com/wordpress/plugins/bad-behavior-stats-plugin/">plugins</a> for it and porting it to other platforms. It now runs on WordPress, MediaWiki and Geeklog, and I&#8217;ve received reports of people using it on Drupal, ExpressionEngine and custom PHP-based sites in its generic mode.</p>
<p>It hasn&#8217;t been all sweetness and light, though. I&#8217;ve had days where I had to <a href="/2005/06/13/bad-behavior-111/">release twice</a> to fix some stupid error I should have caught the first time round. I&#8217;ve had Microsoft do things which caused their search engine bot to get blocked. I&#8217;ve seen a sharp increase in spam directed here, both of the blog variety and the email variety.</p>
<p>But I also get to see new link spammer techniques as they develop, because they seem to want to test them here. This gives me a window of opportunity in the event that something new needs to be added to Bad Behavior, or something needs to be changed. Surprisingly, spambot software is not getting much better overall. While the spammers are beginning to adapt to Bad Behavior, they still have serious weaknesses in their delivery methods that I am able to take advantage of to keep them blocked out. For now, I&#8217;m far ahead of the spammers. They have a lot of catching up to do, but updating spambot software takes time and costs money, and most spammers won&#8217;t bother, since (unfortunately) there are still far too many sites out there without adequate protection, such as Bad Behavior.</p>
<p>The sophisticated link spammer technique in common use now is to use some sort of script to harvest comment forms from a group of sites, then to fill in the fields appropriately, and a few hours or days later, to use a network of open proxy servers to relay the spam comments to thousands &#8212; or hundreds of thousands &#8212; of sites which use the same type of software. Repeatedly.</p>
<p>As spambot software continues to improve, I am seeing more instances of spambot software which closely matches the fingerprint of legitimate user agents such as Internet Explorer or Firefox. Bad Behavior must continue to improve to analyze the delivery method these spammers use, and the next step is to analyze the open proxy server. Accordingly the <a href="http://ioerror.us/wp-signup.php?new=dnsbl">Bad Behavior Blackhole</a> is a spin-off project which intends to do just that. Like Bad Behavior, it is designed to cause minimal or no inconvenience to actual humans by providing a fully automated, immediate removal process &#8212; but only for humans. (At the time of this writing, manual removal is implemented, and automated removal is in testing.) A lot of work has been done on the open proxy server problem already, and Bad Behavior Blackhole will build on this. When it is ready, Bad Behavior Blackhole will be integrated into Bad Behavior.</p>
<p>There are other ideas on the drawing board as well, but I don&#8217;t want to give the spammers (who actually do read my blog, but can&#8217;t seem to leave a comment) too much of a clue where I am going or how I will shut them down next. Like them, you will have to stay tuned.</p>
<p>I hope you found this little essay interesting, and if you haven&#8217;t installed <a href="/">Bad Behavior</a> yet, what are you waiting for?</p>
]]></content:encoded>
			<wfw:commentRss>http://bad-behavior.ioerror.us/2005/06/20/punishing-bad-behavior/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 1.1.2</title>
		<link>http://bad-behavior.ioerror.us/2005/06/19/bad-behavior-112/</link>
		<comments>http://bad-behavior.ioerror.us/2005/06/19/bad-behavior-112/#comments</comments>
		<pubDate>Sun, 19 Jun 2005 19:08:18 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/2005/06/19/bad-behavior-112/</guid>
		<description><![CDATA[Bad Behavior 1.1.2, the latest version of the Web&#8217;s only portable link spam killer, has been released. Fixed in this release: Due to recent changes made by Microsoft, MSNBot was being blocked about 70% of the time. This has been fixed. Changed in this release: A very surprisingly large number of people wanted to have [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behavior-80x15.png" alt="Bad Behavior" /></a> <a href="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png"><img src="http://bad-behavior.ioerror.us/images/bad-behaviour-80x15.png" alt="Bad Behaviour" /></a></p>
<p><a href="https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&amp;SESSION=9meqMUtsNAw4dxpGS6CSAVdQTiHwGc6CnyJCzvjrQCVordZNNyDrTOZ3c7G&amp;dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b08198ad5733caaf944cbac24b2728ea935a7c"><img alt="Make a Donation. " src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" /></a></p>
<p>Bad Behavior 1.1.2, the latest version of the Web&#8217;s only portable link spam killer, has been released.</p>
<p>Fixed in this release:</p>
<ul>
<li>Due to recent changes made by Microsoft, <a href="http://help.live.com:80/help.aspx?mkt=en-us&amp;project=wl_webmasters">MSNBot</a> was being blocked about 70% of the time. This has been fixed.</li>
</ul>
<p>Changed in this release:</p>
<ul>
<li>A very surprisingly large number of people wanted to have individual <code>bad_behavior_log</code> tables for each installation of WordPress, MediaWiki, Geeklog, etc., rather than a combined table. This is now supported and Bad Behavior will create a table using the table prefix provided by each individual software. This means, for instance, instead of a <code>bad_behavior_log</code> table, you will have a <code>wp_bad_behavior_log</code> table on WordPress, or a <code>mw1_bad_behavior_log</code> table on MediaWiki. The table prefix, of course, will vary depending on the settings of the software on which Bad Behavior is installed. The old combined <code>bad_behavior_log</code> table will be left in place; you will need to rename or remove it yourself if you desire.</li>
</ul>
<p>I&#8217;m also moving closer to having the Geeklog port stabilized and included in the mainline Bad Behavior release. Currently it is built and distributed separately.</p>
<p>Thanks again to everyone who has written me, and written on their own sites, about their successes with Bad Behavior. It&#8217;s that time again, so <a href="/download/">Download Bad Behavior</a> now!</p>
]]></content:encoded>
			<wfw:commentRss>http://bad-behavior.ioerror.us/2005/06/19/bad-behavior-112/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.210 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-23 10:09:03 -->
<!-- Compression = gzip -->
