<?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</title>
	<atom:link href="http://www.bad-behavior.ioerror.us/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bad-behavior.ioerror.us</link>
	<description>Home of the Web's premier link spam killer.</description>
	<lastBuildDate>Mon, 21 Dec 2009 13:42:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bad Behavior 2.1.1 and 2.0.36 Security Release</title>
		<link>http://www.bad-behavior.ioerror.us/2009/12/21/bad-behavior-2-1-1-and-2-0-36-security-release/</link>
		<comments>http://www.bad-behavior.ioerror.us/2009/12/21/bad-behavior-2-1-1-and-2-0-36-security-release/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 13:42:37 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[stable]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=364</guid>
		<description><![CDATA[Bad Behavior 2.1.1 and 2.0.36 have been released. These are a security release and affected sites should upgrade as soon as is practical. This security issue was fixed in both the 2.1 development series and the 2.0 stable series, resulting in today&#8217;s simultaneous release.
Please note: The 2.0 series of Bad Behavior is receiving limited updates, [...]]]></description>
			<content:encoded><![CDATA[<p>Bad Behavior 2.1.1 and 2.0.36 have been released. These are a <strong>security release</strong> and affected sites should upgrade as soon as is practical. This security issue was fixed in both the 2.1 development series and the 2.0 stable series, resulting in today&#8217;s simultaneous release.</p>
<p>Please note: The 2.0 series of Bad Behavior is receiving limited updates, including unblocks, bug fixes and security fixes only. Future development is taking place in the 2.1 development tree.</p>
<h3>Who should upgrade?</h3>
<p>WordPress users should upgrade to prevent internal data from leaking to the web browser when the database encounters an error. Users of other platforms are not affected.</p>
<h3>What&#8217;s new?</h3>
<p>New in this release (since <a href="http://www.bad-behavior.ioerror.us/2009/12/19/bad-behavior-2-1-0/">2.1.0</a> and <a href="http://www.bad-behavior.ioerror.us/2009/12/15/bad-behavior-2-0-35/">2.0.35</a>):</p>
<ul>
<li>Due to recent changes in the WordPress database code, any database errors that may occur because of WordPress, other plugins, or server trouble may be inappropriately displayed in the web browser. This could result in the leakage of information useful to attackers. This issue has been fixed. Thanks to Andrew Zhang for reporting this issue.</li>
</ul>
<h3>Download</h3>
<p>The 2.1 development releases will not be offered through the WordPress automatic upgrade facility.</p>
<p><a href="http://www.bad-behavior.ioerror.us/download/">Download</a> the 2.0.36 stable or 2.1.1 development release of Bad Behavior now!</p>
<h3>Support</h3>
<p>This release would not have been possible without the support of people like you who find Bad Behavior valuable enough to <a href="http://www.bad-behavior.ioerror.us/donate/">make a financial contribution</a> to ensure its further development.</p>
<p>Your contributions ensure that I can continue to devote time to bringing you the features you want, as well as continuing work on making spammers&#8217; lives hell.</p>
<p>If you haven&#8217;t already done so, consider setting up a <a href="http://www.bad-behavior.ioerror.us/donate/">recurring contribution</a> for as little as $5 per year, or make your most generous <a href="http://www.bad-behavior.ioerror.us/donate/">one-time contribution</a> for any amount.</p>
<p>Thank you again for supporting Bad Behavior development!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bad-behavior.ioerror.us/2009/12/21/bad-behavior-2-1-1-and-2-0-36-security-release/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 2.1.0</title>
		<link>http://www.bad-behavior.ioerror.us/2009/12/19/bad-behavior-2-1-0/</link>
		<comments>http://www.bad-behavior.ioerror.us/2009/12/19/bad-behavior-2-1-0/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 18:01:13 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=349</guid>
		<description><![CDATA[The first 2.1 development release of Bad Behavior is now available. It contains a number of new and frequently requested features, and may be appropriate for you. Please review the information given, and if you do not find it appropriate for you, then continue to use the latest 2.0 stable releases.
Who should upgrade?
Users who use [...]]]></description>
			<content:encoded><![CDATA[<p>The first 2.1 development release of Bad Behavior is now available. It contains a number of new and frequently requested features, and may be appropriate for you. Please review the information given, and if you do not find it appropriate for you, then continue to use the latest 2.0 stable releases.</p>
<h3>Who should upgrade?</h3>
<p>Users who use Bad Behavior&#8217;s whitelisting features, or who customize Bad Behavior&#8217;s settings on a platform other than WordPress or LifeType, should upgrade to take advantage of new features offered in this release.</p>
<h3>What&#8217;s new?</h3>
<p>Development of Bad Behavior 2.1 generally follows the <a href="http://www.bad-behavior.ioerror.us/2009/11/02/bad-behavior-2-2-status-and-roadmap/">roadmap</a> outlined earlier. In this initial release, the following features have been implemented:</p>
<ul>
<li>Bad Behavior now reads whitelists from a separate file which is preserved through updates. See below for preliminary instructions on using this feature.</li>
<li>On platforms where Bad Behavior cannot store settings in the host platform&#8217;s database, Bad Behavior now reads settings from a separate file which is preserved through updates. See below for preliminary instructions on using this feature.</li>
<li>Bad Behavior&#8217;s core has been reworked to facilitate testing its core logic. While the actual logic tests have not yet been written, a test mode is available for developers to experiment with. See below for preliminary instructions on using this feature.</li>
</ul>
<h3>Whitelists</h3>
<p>Bad Behavior now reads its whitelists from a separate file named <samp>whitelist.ini</samp>. This file is not distributed with Bad Behavior, so that future upgrades do not disturb the whitelist. This means that anyone who wants to use the whitelist must <a href="http://www.bad-behavior.ioerror.us/download/whitelist.ini">download the <samp>whitelist.ini</samp></a>, customize it, then upload it to their server. Place the <samp>whitelist.ini</samp> in Bad Behavior&#8217;s top level directory (the same directory that contains <samp>bad-behavior-wordpress.php</samp>, <samp>README.txt</samp>, etc.).</p>
<p>Note for IPv6 users: At this time, single IPv6 addresses can be whitelisted, but IPv6 networks cannot be. This will be fixed in a future release.</p>
<h3>Settings</h3>
<p>On some platforms, such as WordPress and LifeType, Bad Behavior stores its settings in the host platform&#8217;s database and provides an interface through the host platform for changing the settings. On other platforms, Bad Behavior is not capable of storing its settings in the host platform&#8217;s database, either because there is no database, or because the database cannot be used in that way.</p>
<p>On these platforms, Bad Behavior can now read settings customizations from a <samp>settings.ini</samp> file. This file is not distributed with Bad Behavior, so that future upgrades do not disturb your settings. This means that on those platforms, anyone who wants to customize their settings must <a href="http://www.bad-behavior.ioerror.us/download/settings.ini">download the <samp>settings.ini</samp></a>, customize it, then upload it to their server. Place the <samp>settings.ini</samp> in Bad Behavior&#8217;s top level directory (the same directory that contains <samp>bad-behavior-wordpress.php</samp>, <samp>README.txt</samp>, etc.). This feature has been implemented for the MediaWiki and generic ports; other platforms will need to implement the feature in their platform connectors before it is available to you.</p>
<h3>Testing</h3>
<p>Bad Behavior&#8217;s core logic now supports &#8220;black box&#8221; testing. This won&#8217;t be of much interest to most people, except that testing will help improve the quality of the product. A test suite is still planned and will be released later.</p>
<p>In addition, Bad Behavior now supports a live &#8220;test mode&#8221; in which it will not actually block any requests, but will report on whether they would have been blocked. This is fully implemented in the WordPress port; to use it on other ports, the platform connector must provide a method for the platform to report the results. To enable test mode, <a href="http://www.php.net/define">define</a> a PHP constant BB2_TEST.</p>
<h3>Download</h3>
<p>The 2.1 development releases will not be offered through the WordPress automatic upgrade facility.</p>
<p><a href="http://www.bad-behavior.ioerror.us/download/">Download</a> this development release of Bad Behavior now! You can install Bad Behavior using the usual <a href="http://www.bad-behavior.ioerror.us/documentation/">installation instructions</a>; there are no special requirements for this release.</p>
<p>Remember to subscribe to the <a href="http://www.bad-behavior.ioerror.us/feed/">Bad Behavior RSS feed</a> to receive notice when Bad Behavior development updates are available.</p>
<h3>Support</h3>
<p>This release would not have been possible without the support of people like you who find Bad Behavior valuable enough to <a href="http://www.bad-behavior.ioerror.us/donate/">make a financial contribution</a> to ensure its further development.</p>
<p>Your contributions ensure that I can continue to devote time to bringing you the features you want, as well as continuing work on making spammers&#8217; lives hell.</p>
<p>If you haven&#8217;t already done so, consider setting up a <a href="http://www.bad-behavior.ioerror.us/donate/">recurring contribution</a> for as little as $5 per year, or make your most generous <a href="http://www.bad-behavior.ioerror.us/donate/">one-time contribution</a> for any amount.</p>
<p>Thank you again for supporting Bad Behavior development!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bad-behavior.ioerror.us/2009/12/19/bad-behavior-2-1-0/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 2.0.35</title>
		<link>http://www.bad-behavior.ioerror.us/2009/12/15/bad-behavior-2-0-35/</link>
		<comments>http://www.bad-behavior.ioerror.us/2009/12/15/bad-behavior-2-0-35/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 01:20:52 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL server has gone away]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=341</guid>
		<description><![CDATA[Bad Behavior 2.0.35 has been released. It is a maintenance release and is strongly recommended for users of shared web hosting services.
Please note: The 2.0 series of Bad Behavior is receiving limited updates, including unblocks, bug fixes and security fixes only. Future development will be to the 2.1 development tree.
MediaWiki and WordPress users who have [...]]]></description>
			<content:encoded><![CDATA[<p>Bad Behavior 2.0.35 has been released. It is a maintenance release and is strongly recommended for users of shared web hosting services.</p>
<p>Please note: The 2.0 series of Bad Behavior is receiving limited updates, including unblocks, bug fixes and security fixes only. Future development will be to the 2.1 development tree.</p>
<p><strong>MediaWiki and WordPress users</strong> who have not updated in the last year or so should take note of special upgrade instructions below.</p>
<h3>Who should upgrade?</h3>
<p>Users whose sites are on shared web hosting services should upgrade to prevent &#8220;MySQL server has gone away&#8221; database errors. Users whose sites are on dedicated servers or virtual dedicated servers should review the information below before upgrading.</p>
<h3>What&#8217;s new?</h3>
<p>New in this release (since <a href="http://www.bad-behavior.ioerror.us/2009/12/06/bad-behavior-2-0-34/">2.0.34</a>):</p>
<ul>
<li>In very rare circumstances, Bad Behavior users may see MySQL database errors stating &#8220;MySQL server has gone away.&#8221; This issue does not occur in Bad Behavior&#8217;s default configuration. It primarily affects shared web hosting providers using cPanel/WHM, though it may affect other shared web hosting providers or, even more rarely, people who run their own virtual dedicated servers or dedicated servers. A workaround has been placed in Bad Behavior to mitigate this issue.</li>
</ul>
<p>In order for this issue to occur, three things must happen:</p>
<ul>
<li>Bad Behavior must be configured to use the http:BL DNS-based list (which is disabled by default);</li>
<li>A DNS query sent to http:BL must take an unusually long time (several seconds or more); and</li>
<li>The time the DNS query takes must exceed the MySQL server&#8217;s configured wait_timeout value.</li>
</ul>
<p>In this scenario, because MySQL has not seen a database query for a long time, the server drops the database connection. Shared web hosting providers set the wait_timeout value relatively low in order to preserve resources on their typically very active databases; each open connection uses scarce memory that could be serving another user. There is nothing wrong with this, in theory, though a few hosting providers set wait_timeout so low as to be frequently unusable. For instance, cPanel/WHM based web hosts may have wait_timeout set to 10 seconds, which I feel is completely unreasonable.</p>
<p>The &#8220;MySQL server has gone away&#8221; error appears when the host platform under which Bad Behavior runs (e.g. WordPress, Drupal, etc.) fails to trap the error and reopen the database connection. There is nothing Bad Behavior can presently do to cause the host platform to reconnect to the database. If your host platform does this, its database code needs to be reworked so that it reconnects and resends the query when it gets the &#8220;MySQL server has gone away&#8221; error.</p>
<p>Another issue here is that DNS lookups typically take less than a second. When http:BL is active, Bad Behavior screens the IP address for all POST requests against it. The Internet not being 100% reliable, it&#8217;s expected that <em>occasionally</em> DNS queries will be slow. If DNS lookups <em>consistently</em> take significantly longer, (e.g. they&#8217;re slow for more than a day) this may indicate trouble with the DNS servers being used by the web server. There isn&#8217;t much that Bad Behavior can do about this.</p>
<p>In the meantime, the workaround released today will ask the MySQL server to temporarily raise the timeout to 90 seconds, for that connection only, whenever it does a DNS lookup. (The timeout for most requests is left alone.) This should be more than sufficient; with my own server set at 60 seconds I have never seen this error.</p>
<p>If you continue to see &#8220;MySQL server has gone away&#8221; messages and/or slow loading times when you log in or navigate your administrative pages, disable http:BL. If that still doesn&#8217;t help, you may have other trouble; contact me and we&#8217;ll figure it out.</p>
<p>Finally I want to thank Jen Lepp at <a href="http://www.drak.net/">DrakNet Web Hosting</a> for providing the information which finally allowed me to track down this rare but annoying issue.</p>
<h3>Support</h3>
<p>Thank you to everyone who has chosen to <a href="http://www.bad-behavior.ioerror.us/donate/">make a financial contribution</a> toward further development of Bad Behavior. Your contributions ensure that I can prioritize Bad Behavior development and make more frequent and timely releases, like this one.</p>
<h3>Download</h3>
<p><a href="http://www.bad-behavior.ioerror.us/download/">Download Bad Behavior</a> now!</p>
<h3>Special Upgrade Instructions</h3>
<p>Users of MediaWiki and WordPress upgrading from version 2.0.20 or earlier should follow these special directions (from 2.0.21 or later, upgrade normally):</p>
<p>For MediaWiki: Before installing this version of Bad Behavior, manually remove (e.g. using FTP or ssh) any old versions you may have, including the lines added to <samp>LocalSettings.php</samp>. Then install the new version fresh, following the <a href="http://www.bad-behavior.ioerror.us/documentation/mediawiki/">installation instructions for MediaWiki</a>.</p>
<p>For WordPress: If updating to this version through the automatic updater fails, manually remove (e.g. using FTP or ssh) any old versions you may have installed. Then upload and install the new version fresh, following the <a href="http://www.bad-behavior.ioerror.us/documentation/wordpress/">installation instructions for WordPress</a>. After doing so, future automatic updates should proceed normally.</p>
<p>For other platforms: No changes to your upgrade procedures should be necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bad-behavior.ioerror.us/2009/12/15/bad-behavior-2-0-35/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Bad Behavior now included with Cahoots</title>
		<link>http://www.bad-behavior.ioerror.us/2009/12/14/bad-behavior-now-included-with-cahoots/</link>
		<comments>http://www.bad-behavior.ioerror.us/2009/12/14/bad-behavior-now-included-with-cahoots/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 19:05:28 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[Cahoots]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=338</guid>
		<description><![CDATA[Don Jones from Concentrated Technology wrote in to tell me that the Cahoots web collaboration software will ship with Bad Behavior as of version 2 RC2, which was released moments ago.
Cahoots is described on its SourceForge wiki page as &#8220;a PHP-based knowledge-exchange community application.&#8221; From viewing their demonstration site and feature list it looks like [...]]]></description>
			<content:encoded><![CDATA[<p>Don Jones from <a href="http://concentratedtech.com/">Concentrated Technology</a> wrote in to tell me that the <a href="http://sourceforge.net/projects/cahoots/">Cahoots</a> web collaboration software will ship with Bad Behavior as of version 2 RC2, which was released moments ago.</p>
<p>Cahoots is described on <a href="http://sourceforge.net/apps/mediawiki/cahoots/">its SourceForge wiki page</a> as &#8220;a PHP-based knowledge-exchange community application.&#8221; From viewing their demonstration site and feature list it looks like an interesting and useful way to do project collaboration.</p>
<p>If you&#8217;re a Cahoots user, welcome to the Bad Behavior community!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bad-behavior.ioerror.us/2009/12/14/bad-behavior-now-included-with-cahoots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad Behavior error pages missing on IIS 7.0</title>
		<link>http://www.bad-behavior.ioerror.us/2009/12/14/bad-behavior-error-pages-missing-on-iis-7-0/</link>
		<comments>http://www.bad-behavior.ioerror.us/2009/12/14/bad-behavior-error-pages-missing-on-iis-7-0/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 17:27:53 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Internet Information Server]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=332</guid>
		<description><![CDATA[Users of Bad Behavior on Microsoft Internet Information Server 7.0 may find that Bad Behavior&#8217;s error pages are not always displayed to spammers and malicious crawlers.
This behavior occurs because of a misfeature in IIS 7.0 where it serves custom error pages by default, overriding the error page generated by your web application. This is, of [...]]]></description>
			<content:encoded><![CDATA[<p>Users of Bad Behavior on Microsoft Internet Information Server 7.0 may find that Bad Behavior&#8217;s error pages are not always displayed to spammers and malicious crawlers.</p>
<p>This behavior occurs because of a misfeature in IIS 7.0 where it serves custom error pages by default, overriding the error page generated by your web application. This is, of course, utterly broken behavior, and just one of many reasons you shouldn&#8217;t use IIS on Windows to serve your web site.</p>
<p>But some people still want to do it, so here is a workaround to allow Bad Behavior (not to mention every other web app you have) to display its error pages properly.</p>
<p><strong>You will need to know your way around IIS already; I cannot give you any support for this.</strong></p>
<p>You will need to modify your IIS configuration to set the web server httpErrors element to &#8220;passthrough&#8221;. An MSDN blog post from the IIS team explains <a href="http://blogs.msdn.com/webdevelopertips/archive/2009/08/24/tip-93-did-you-know-php-and-custom-error-pages-configuration.aspx">how to set this property</a> for an individual web site or for your entire server.</p>
<p>Not only does this provide a fix for Bad Behavior, it also fixes WordPress 404 pages, as well as numerous problems where a web application expects to generate its own error page. Of course, it&#8217;s utterly ridiculous that this requires a workaround and is not the default behavior, as it is with every other web server. But that&#8217;s one more reason not to use IIS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bad-behavior.ioerror.us/2009/12/14/bad-behavior-error-pages-missing-on-iis-7-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 2.0.34</title>
		<link>http://www.bad-behavior.ioerror.us/2009/12/06/bad-behavior-2-0-34/</link>
		<comments>http://www.bad-behavior.ioerror.us/2009/12/06/bad-behavior-2-0-34/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 00:39:01 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=325</guid>
		<description><![CDATA[  
Bad Behavior 2.0.34 has been released. It is a maintenance release and is recommended for specific users of WordPress identified below.
Please note: The 2.0 series of Bad Behavior is receiving limited updates, including unblocks, bug fixes and security fixes only. Future development will be to the 2.1 development tree.
MediaWiki and WordPress users who [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bad-behavior.ioerror.us/images/bad-behavior-80x15.png"><img src="http://www.bad-behavior.ioerror.us/images/bad-behavior-80x15.png" /></a> <a href="http://www.bad-behavior.ioerror.us/images/bad-behaviour-80x15.png"><img src="http://www.bad-behavior.ioerror.us/images/bad-behaviour-80x15.png" /></a> <a href="http://www.bad-behavior.ioerror.us/donate/"><img alt="Make a Donation. " src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" /></a></p>
<p>Bad Behavior 2.0.34 has been released. It is a maintenance release and is recommended for specific users of WordPress identified below.</p>
<p>Please note: The 2.0 series of Bad Behavior is receiving limited updates, including unblocks, bug fixes and security fixes only. Future development will be to the 2.1 development tree.</p>
<p><strong>MediaWiki and WordPress users</strong> who have not updated in the last year or so should take note of special upgrade instructions below.</p>
<h3>Who should upgrade?</h3>
<p>WordPress users who use the W3 Total Cache plugin should upgrade to ensure that users are not blocked inappropriately due to flaws in W3 Total Cache.</p>
<h3>What&#8217;s new?</h3>
<p>New in this release (since <a href="http://www.bad-behavior.ioerror.us/2009/11/19/bad-behavior-2-0-33/">2.0.33</a>):</p>
<ul>
<li>On some WordPress installations which use the W3 Total Cache plugin, W3 Total Cache <a href="http://www.bad-behavior.ioerror.us/2009/12/03/beware-of-negative-caching/">could inappropriately store the error page</a> which Bad Behavior serves to illegitimate requests. When this happens, the cached error page would be served to subsequent legitimate requests. Bad Behavior 2.0.34 contains a workaround which forces W3 Total Cache to not cache these error pages. (To be clear, W3 Total Cache is still broken and needs an update, but this resolves the immediate problem.)</li>
</ul>
<p>Authors of caching plugins should consider following the &#8220;standard&#8221; set by WP Super Cache: check for a constant DONOTCACHEPAGE which can be set by other plugins; and checking to ensure that <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.4">non-cacheable error responses</a> are never cached, regardless of which plugin generates them.</p>
<h3>Support</h3>
<p>Thank you to everyone who has chosen to <a href="http://www.bad-behavior.ioerror.us/donate/">make a financial contribution</a> toward further development of Bad Behavior. Your contributions ensure that I can prioritize Bad Behavior development and make more frequent and timely releases, like this one.</p>
<h3>Download</h3>
<p><a href="http://www.bad-behavior.ioerror.us/download/">Download Bad Behavior</a> now!</p>
<h3>Special Upgrade Instructions</h3>
<p>Users of MediaWiki and WordPress upgrading from version 2.0.20 or earlier should follow these special directions (from 2.0.21 or later, upgrade normally):</p>
<p>For MediaWiki: Before installing this version of Bad Behavior, manually remove (e.g. using FTP or ssh) any old versions you may have, including the lines added to <samp>LocalSettings.php</samp>. Then install the new version fresh, following the <a href="http://www.bad-behavior.ioerror.us/documentation/mediawiki/">installation instructions for MediaWiki</a>.</p>
<p>For WordPress: If updating to this version through the automatic updater fails, manually remove (e.g. using FTP or ssh) any old versions you may have installed. Then upload and install the new version fresh, following the <a href="http://www.bad-behavior.ioerror.us/documentation/wordpress/">installation instructions for WordPress</a>. After doing so, future automatic updates should proceed normally.</p>
<p>For other platforms: No changes to your upgrade procedures should be necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bad-behavior.ioerror.us/2009/12/06/bad-behavior-2-0-34/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Beware of negative caching</title>
		<link>http://www.bad-behavior.ioerror.us/2009/12/03/beware-of-negative-caching/</link>
		<comments>http://www.bad-behavior.ioerror.us/2009/12/03/beware-of-negative-caching/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 19:29:37 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[batcache]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[hyper cache]]></category>
		<category><![CDATA[RFC 2616]]></category>
		<category><![CDATA[w3 total cache]]></category>
		<category><![CDATA[WP Super Cache]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=313</guid>
		<description><![CDATA[Advisory: WordPress users who use caching plugins should check to ensure that the caching plugin does not cache error pages. This behavior violates Internet standards and may cause users to be blocked from your site. This issue may also affect caches external to WordPress, such as squid and ISA, and content distribution networks such as [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Advisory:</strong> WordPress users who use caching plugins should check to ensure that the caching plugin does not cache error pages. This behavior violates Internet standards and may cause users to be blocked from your site. This issue may also affect caches external to WordPress, such as squid and ISA, and content distribution networks such as Akamai. See below for details.</p>
<p>In the last 24 hours I&#8217;ve received complaints from Bad Behavior users that legitimate requests are being blocked. These users are using WordPress caching systems. In each case, the caching system was inappropriately caching the blocked page which was served to an illegitimate request. The caching system would then serve the blocked page to subsequent legitimate requests.</p>
<p>To be perfectly clear, this is a problem with the cache, not with Bad Behavior. The HTTP standard, RFC 2616, <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.4">explicitly prohibits</a> caches from &#8220;negative caching,&#8221; or storing the types of 4xx error pages which Bad Behavior serves to illegitimate requests. (The only cacheable error is <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11">410</a>, and Bad Behavior does not use this error.)</p>
<p>Currently I know of two WordPress caches which have this problem: Hyper Cache and W3 Total Cache. There is currently no workaround; to resolve the problem, either Bad Behavior or the caching plugin must be disabled.</p>
<p>In the case of Hyper Cache, you can replace it with WP Super Cache, which does not have this problem. There is no comparable replacement for W3 Total Cache; it&#8217;s otherwise an excellent product which combines many different techniques to speed up your site.</p>
<p>Other WordPress caches may be affected as well. If you don&#8217;t see your favorite caching plugin listed below, leave a comment and I&#8217;ll test it for this issue.</p>
<p>Current test results with Bad Behavior 2.0.33 and WordPress 2.8.6:</p>
<p>Batcache 1.0 = OK<br />
Hyper Cache 2.6.3 = Broken<br />
W3 Total Cache 0.8.5 = Broken<br />
WP Super Cache 0.9.8 = OK</p>
<p>With respect to external caches and content distribution networks, normally these do not engage in negative caching. However it is possible to configure them to cache error responses. When this functionality is used, it should be limited to caching <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404</a> and <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11">410</a> errors.</p>
<p>Finally, the <a href="http://www.bad-behavior.ioerror.us/2009/11/02/bad-behavior-2-2-status-and-roadmap/">development roadmap</a> includes features which will let Bad Behavior communicate to other plugins whether it has approved or blocked a request. If you want to support this feature along with future Bad Behavior development, <a href="http://www.bad-behavior.ioerror.us/donate/">consider becoming a sustaining contributor</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bad-behavior.ioerror.us/2009/12/03/beware-of-negative-caching/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Bad Behavior stops distributed WordPress account cracker</title>
		<link>http://www.bad-behavior.ioerror.us/2009/12/02/bad-behavior-stops-distributed-wordpress-account-cracker/</link>
		<comments>http://www.bad-behavior.ioerror.us/2009/12/02/bad-behavior-stops-distributed-wordpress-account-cracker/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 11:55:32 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[SANS]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=300</guid>
		<description><![CDATA[Spam isn&#8217;t the only threat to your web site.
Another very real threat is criminals who use automated attacks against thousands or even millions of web sites, hoping that a few will let them in so they can take over your site, forcing malicious software on your unsuspecting visitors and posting as many links to their [...]]]></description>
			<content:encoded><![CDATA[<p>Spam isn&#8217;t the only threat to your web site.</p>
<p>Another very real threat is criminals who use automated attacks against thousands or even millions of web sites, hoping that a few will let them in so they can take over your site, forcing malicious software on your unsuspecting visitors and posting as many links to their garbage as they want.</p>
<p>On Monday the SANS Internet Storm Center <a href="http://isc.sans.org/diary.html?storyid=7663">noted one such attack seen in the wild</a> which uses a distributed network of virtual machines that all talk to each other and share data on which passwords they&#8217;ve tried against which WordPress blogs.</p>
<p>After obtaining a copy of the attack script and testing it in a virtual lab, I&#8217;ve determined that Bad Behavior already blocks this script as it is currently written.</p>
<p>Even so, the script has given me some good ideas on how to improve Bad Behavior further to protect against malicious attacks of this type. I will be rolling out some of these changes in the following days in the 2.0 branch.</p>
<p>The first release in the 2.1 development branch will be coming later this month, as well. If you want to see it sooner, consider <a href="http://www.bad-behavior.ioerror.us/donate/">becoming a sustaining contributor</a> to Bad Behavior development. Your contributions ensure that I can devote development time to Bad Behavior on an ongoing basis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bad-behavior.ioerror.us/2009/12/02/bad-behavior-stops-distributed-wordpress-account-cracker/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 2.0.33</title>
		<link>http://www.bad-behavior.ioerror.us/2009/11/19/bad-behavior-2-0-33/</link>
		<comments>http://www.bad-behavior.ioerror.us/2009/11/19/bad-behavior-2-0-33/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 02:50:43 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[Coral]]></category>
		<category><![CDATA[CoralCDN]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=293</guid>
		<description><![CDATA[  
Bad Behavior 2.0.33 has been released. It is a maintenance release and is recommended for all users.
Please note: The 2.0 series of Bad Behavior is receiving limited updates, including unblocks, bug fixes and security fixes only. Future development will be to the 2.1 development tree.
MediaWiki and WordPress users who have not updated in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bad-behavior.ioerror.us/images/bad-behavior-80x15.png"><img src="http://www.bad-behavior.ioerror.us/images/bad-behavior-80x15.png" /></a> <a href="http://www.bad-behavior.ioerror.us/images/bad-behaviour-80x15.png"><img src="http://www.bad-behavior.ioerror.us/images/bad-behaviour-80x15.png" /></a> <a href="https://www.paypal.com/xclick/business=error%40ioerror.us&amp;item_name=Bad+Behavior+2.0.33&amp;no_shipping=1&amp;return=http%3A//www.bad-behavior.ioerror.us/2009/11/19/bad-behavior-2-0-33/&amp;cancel_return=http%3A//www.bad-behavior.ioerror.us/2009/11/19/bad-behavior-2-0-33/&amp;tax=0&amp;cn=Comments%20about%20Bad%20Behavior&amp;currency_code=USD"><img alt="Make a Donation. " src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" /></a></p>
<p>Bad Behavior 2.0.33 has been released. It is a maintenance release and is recommended for all users.</p>
<p>Please note: The 2.0 series of Bad Behavior is receiving limited updates, including unblocks, bug fixes and security fixes only. Future development will be to the 2.1 development tree.</p>
<p><strong>MediaWiki and WordPress users</strong> who have not updated in the last year or so should take note of special upgrade instructions below.</p>
<h3>Who should upgrade?</h3>
<p>Users should upgrade to permit use of the Coral Content Distribution Network with their web sites.</p>
<h3>What&#8217;s new?</h3>
<p>New in this release (since <a href="http://www.bad-behavior.ioerror.us/2009/11/02/bad-behavior-2-0-32/">2.0.32</a>):</p>
<ul>
<li>The web crawler used by the <a href="http://www.coralcdn.org/">Coral Content Distribution Network</a> uses an HTTP header most commonly seen from malicious requests; therefore, it was being blocked. Users who used the Coral CDN to access Bad Behavior protected sites were denied, although accessing the site directly works fine. This issue has been fixed.</li>
</ul>
<h3>Support</h3>
<p>Thank you to everyone who has chosen to <a href="https://www.paypal.com/xclick/business=error%40ioerror.us&amp;item_name=Bad+Behavior+2.0.33&amp;no_shipping=1&amp;return=http%3A//www.bad-behavior.ioerror.us/2009/11/19/bad-behavior-2-0-33/&amp;cancel_return=http%3A//www.bad-behavior.ioerror.us/2009/11/19/bad-behavior-2-0-33/&amp;tax=0&amp;cn=Comments%20about%20Bad%20Behavior&amp;currency_code=USD">make a financial contribution</a> toward further development of Bad Behavior. Your contributions ensure that I can prioritize Bad Behavior development and make more frequent and timely releases, like this one.</p>
<h3>Download</h3>
<p><a href="http://www.bad-behavior.ioerror.us/download/">Download Bad Behavior</a> now!</p>
<h3>Special Upgrade Instructions</h3>
<p>Users of MediaWiki and WordPress upgrading from version 2.0.20 or earlier should follow these special directions (from 2.0.21 or later, upgrade normally):</p>
<p>For MediaWiki: Before installing this version of Bad Behavior, manually remove (e.g. using FTP or ssh) any old versions you may have, including the lines added to <samp>LocalSettings.php</samp>. Then install the new version fresh, following the <a href="http://www.bad-behavior.ioerror.us/documentation/mediawiki/">installation instructions for MediaWiki</a>.</p>
<p>For WordPress: If updating to this version through the automatic updater fails, manually remove (e.g. using FTP or ssh) any old versions you may have installed. Then upload and install the new version fresh, following the <a href="http://www.bad-behavior.ioerror.us/documentation/wordpress/">installation instructions for WordPress</a>. After doing so, future automatic updates should proceed normally.</p>
<p>For other platforms: No changes to your upgrade procedures should be necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bad-behavior.ioerror.us/2009/11/19/bad-behavior-2-0-33/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bad Behavior 2.2 Status and Roadmap</title>
		<link>http://www.bad-behavior.ioerror.us/2009/11/02/bad-behavior-2-2-status-and-roadmap/</link>
		<comments>http://www.bad-behavior.ioerror.us/2009/11/02/bad-behavior-2-2-status-and-roadmap/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 19:55:58 +0000</pubDate>
		<dc:creator>Michael Hampton</dc:creator>
				<category><![CDATA[Bad Behavior]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[ExpressionEngine]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[LifeType]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Project Honey Pot]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bad-behavior.ioerror.us/?p=279</guid>
		<description><![CDATA[Since the first release of Bad Behavior four years ago, tens of thousands of WordPress users have used it to protect their sites from the scourge of link spam. Bad Behavior&#8217;s second major release, just a year after the first, was a major redesign that has stood the test of time. Bad Behavior became even [...]]]></description>
			<content:encoded><![CDATA[<p>Since the first release of Bad Behavior four years ago, tens of thousands of WordPress users have used it to protect their sites from the scourge of link spam. Bad Behavior&#8217;s second major release, just a year after the first, was a major redesign that has stood the test of time. Bad Behavior became even easier to port to other web site platforms as well as easier to add new features and block new spam.</p>
<p>Now the design needs a few tweaks. This work will eventually become Bad Behavior 2.2. Today I want to update you on some of the changes Bad Behavior needs and what I&#8217;m planning for the 2.2 version.</p>
<p>As I noted with today&#8217;s 2.0.32 release, development of the 2.0 branch has been limited to bug fixes and security issues so that I can concentrate development on this new version. The development will take place in versions numbered from 2.1. As a development branch, it won&#8217;t be appropriate for everyone, but many of you will be interested in following its progress.</p>
<p>Before I get into the details of the roadmap, there&#8217;s something I haven&#8217;t talked about in a while and should probably do again. Bad Behavior has been a personal project of mine for almost five years now. It was born out of an incident, a couple of months after I started blogging, where I got my first comment spam. Unfortunately, my first comment spam was followed by 700 more over the space of a few hours. As you can imagine, I was thoroughly pissed. I spent some time looking at anti-spam solutions, but at the time there wasn&#8217;t much, and what there was didn&#8217;t work all that well. I felt I had to roll my own. A couple of months later, Bad Behavior was born.</p>
<p>I still clearly remember cleaning up after that first incident, and killing link spam has become something of a personal crusade for me. But I&#8217;ve learned that I can&#8217;t possibly do it all alone. Fortunately this field has grown significantly and there are now a whole lot of smart people working on various aspects of the link spam problem. What Bad Behavior brings to the table is to take that 700 spam attack and allow fewer than one percent to reach your blog. Having to clean out 7 spam from the moderation queue is much easier than cleaning out 700. (This is one reason why <a href="http://www.bad-behavior.ioerror.us/documentation/spam-prevention-strategy/">I advise using more than one anti-spam solution</a>.)</p>
<p>The main technique Bad Behavior uses to accomplish this is to block bots which scrape your site to get access to your comment forms, login forms and other such forms on your site. Once a bot has the form, it can pass it around a botnet and send dozens of spams to that page from all over the world. Preventing malicious bots from accessing the forms in the first place stops the majority of spam. The remainder is a variety of techniques used to identify poorly coded bots which imperfectly masquerade as legitimate web traffic.</p>
<p>As new spammers start up and new botnets come online, some find themselves already blocked, while others need to be analyzed and updates made to block them, so Bad Behavior will always require continuous development. Often this development is delayed because I have to pay bills. As you may be aware if you&#8217;ve been a very long time user, I lost my job in 2005 and since then I have lived on revenue from blogging and paid web consulting work. Therefore I can only work on Bad Behavior when my finances permit.</p>
<p>Today my finances do not permit me to do any further work on Bad Behavior, mainly due to the economic recession. If you want this work to continue, as I&#8217;ll outline in the roadmap below, skip your morning latte tomorrow and <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&#038;business=EAZGZZV7RE4QJ&#038;lc=US&#038;item_name=I%20Heart%20Bad%20Behavior%202&#038;cn=Comments%20about%20Bad%20Behavior&#038;no_shipping=1&#038;rm=1&#038;return=http%3a%2f%2fwww%2ebad%2dbehavior%2eioerror%2eus%2f&#038;cancel_return=http%3a%2f%2fwww%2ebad%2dbehavior%2eioerror%2eus%2f&#038;currency_code=USD&#038;bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted8">send me a financial contribution</a>. The amount is blank, so fill in whatever you feel is appropriate.</p>
<p>And if you see any problems with the roadmap, or feel it could be improved, feel free to comment below.</p>
<h3>Core Changes</h3>
<p>The most important change won&#8217;t be visible right away. A design change to the core is needed to enable Bad Behavior to be tested using more rigorous test methods. The earliest 2.1 releases will contain this change and I will write tests for each of Bad Behavior&#8217;s existing checks. Before the 2.2 stable release, and going forward, a test will be written for each feature introduced into Bad Behavior, to help prevent obvious and silly bugs which require almost immediate updates to fix, as happened with 2.0.30 through 2.0.32. The test suite which emerges from this work will ship as a downloadable package, so that you can test Bad Behavior yourself. (Thanks to <a href="http://www.tonybibbs.com/">Tony Bibbs</a> for suggesting this change.)</p>
<p>Bad Behavior&#8217;s various whitelists will be moved out of the core and into a separate file template, downloaded separately from Bad Behavior. This will allow you to update Bad Behavior without disturbing your personal whitelists. This is currently an issue for all platforms. On platforms which support an integrated administrative page for changing Bad Behavior&#8217;s settings, and can store settings in the host platform&#8217;s database, the whitelists will be manageable from within the administrative page.</p>
<h3>Platform Connector Changes</h3>
<p>On platforms which do not support an integrated administrative page for changing Bad Behavior&#8217;s settings, and require settings to be placed in the platform connector&#8217;s file, these settings will be placed in a separate file, downloadable separately from the platform connector. This will allow for the incorporation of settings for new features without updating the platform connector, or conversely, updating the platform connector without disturbing your settings. This is currently an issue for the Drupal module, MediaWiki extension, and possibly other platforms.</p>
<p>The integrated administrative page will be introduced for more platforms. I had originally intended to write this myself for MediaWiki, whose platform connector I maintain, but the lack of adequate developer documentation had made it virtually impossible. (The <a href="http://www.mediawiki.org/wiki/Manual:Extensions">documentation</a> seems to have improved greatly since then, so I&#8217;m going to make another attempt at it.) I expect that these are going to be highly specific to the platform and that little code can be shared between them. If you maintain a platform connector and need assistance with implementing this, please contact me.</p>
<p>The integrated administrative page will be enhanced to allow more complex searching through the database records. Currently it is not possible to search the records except by manually crafting a URL. In the future the entire database will be searchable and you will be able to mark records and forward them to me for analysis. Due to privacy concerns, records sent to me are kept on encrypted media at all times, used solely for analysis of how to permit or block similar traffic (as appropriate) and destroyed within 90 days. Personally identifying information, if present, is not used. I have done this since the beginning.</p>
<p>The current list of platform connectors needs to be updated; it&#8217;s come to my attention that some are out of date or their maintainers have stopped maintaining them. If you are, or want to be, a maintainer for a platform connector, please contact me.</p>
<p>The code which creates the database in a new Bad Behavior installation is currently in the core; however, it properly belongs in the platform connector, since it can vary by platform. For instance, the Drupal module already uses its own code for this, but the WordPress and MediaWiki connectors share the same code. This code will be moved out of the core and split into separate files to facilitate reuse where possible, give a slight performance gain, and enable other platforms to do their own initialization where needed.</p>
<p>I&#8217;ve identified several new situations in which it would be useful for Bad Behavior to call back to the platform connector to have the host platform perform some action or another. As a result, the platform connector API, such as it is, will expand. It will remain backward compatible, however, in case some platform does not or cannot implement the complete API.</p>
<p>The porting documentation needs to be greatly reworked and expanded. It doesn&#8217;t say much except to look at the existing code and base your work off of it, which is perhaps fine for some experienced programmers, but not for everyone.</p>
<p>Bad Behavior needs to be localized, that is, translated into languages other than English. This is still an open design issue, since each platform handles localization in a completely different manner and requires files containing localized translations to be installed in different places. The most likely solution at this point will involve &#8220;language packs&#8221; which you will be able to download separately from the core. In addition, people will be needed to help translate Bad Behavior. I will make a separate post when I&#8217;m ready to accept translations.</p>
<h3>Spam Prevention</h3>
<p>The core design change mentioned above, which will allow for improved testing, will also enable some new features which haven&#8217;t been implementable before, such as improved whitelisting of search engines. As you may know, Bad Behavior has been using the <a href="http://www.projecthoneypot.org/httpbl_configure.php">http:BL service</a> from <a href="http://www.projecthoneypot.org/">Project Honey Pot</a> to detect spammers for some time now (if you enabled the feature). The http:BL service also identifies many different search engines and can be used to whitelist them, preventing such issues as the <a href="http://www.bad-behavior.ioerror.us/2009/10/15/bad-behavior-2-0-30/">recent blocking of msnbot when it began using a suspicious user-agent string</a>. This feature will be available for testing early in the 2.1 release cycle. The original methods of identifying major search engines will remain in place and be maintained for those who cannot use http:BL.</p>
<p>Speaking of Project Honey Pot, Bad Behavior will allow you to serve spammers <a href="http://www.projecthoneypot.org/manage_honey_pots.php">honey pots</a> or <a href="http://www.projecthoneypot.org/manage_quicklink.php">QuickLinks</a> provided by the service, so that it can catch even more spammers.</p>
<p>A screener which uses JavaScript and cookies to identify legitimate users has been in Bad Behavior since the initial 2.0 release, but proved difficult to implement, as it required calls into the host platform which weren&#8217;t always available or didn&#8217;t work as expected. This feature has been disabled for years. I will finally revisit this technique, as I think there&#8217;s still some value in this approach.</p>
<p>And of course I will continue to kill spammers as they come across my radar screen.</p>
<h3>Other</h3>
<p>Bad Behavior&#8217;s documentation has always been less thorough than I would like. It will have to be revamped. In addition I will have to keep on top of it by writing documentation for new features as the new features are written, rather than afterward. Documentation will also need to be translated, and I will need your help for that. I will make a separate posting when I am ready to accept translations.</p>
<p>On many platforms, users currently have to download the Bad Behavior core, then the platform connector, and then upload them together on their web site. If not done perfectly, this can result in errors, or a completely broken site. Where possible, I plan to have a build system which, upon each release of the core, combines it with the platform connector for each platform, an optional language pack, as well as files such as the whitelist and settings templates mentioned above, creating a single download. This should make installing and updating the software more convenient and less error-prone for users of affected platforms.</p>
<p>Finally, I made a proposal long ago for Bad Behavior to automatically update itself. This is not appropriate for everyone, of course, but it may be useful for people on platforms which don&#8217;t provide update facilities for their plugins/extensions. This is still a post-2.2 change, though I want to do some preliminary work to see if it can be done reliably and what might be necessary to accomplish it.</p>
<p>I&#8217;ve also probably forgotten a few things. They&#8217;ll be announced when I remember them.</p>
<h3>Status</h3>
<p>Bad Behavior must continue to keep up with spammers as they attempt to adapt and find new ways to post their automated garbage. Historically, keeping up with the spammers has not been that difficult, as there is only so much the spammers can do while maintaining their high rates of spamming. Today, 100,000 or more spams in a single run is not unusual, and one spammer I’ve blocked can send 1,000,000 in a day. Bad Behavior attempts to drive up the cost of link spamming by blocking as many automated spammy requests as possible, forcing the spammers to resort to MUCH slower manual methods, or ideally, give up and find more honest work.</p>
<p>I believe the proposed changes outlined above will make Bad Behavior a much stronger tool for preventing link spam while at the same time making it more accessible to a wider variety of users and web site platforms.</p>
<p>Only one thing remains, and that is to do the work. As I noted before, Bad Behavior is a user-supported project. If you think this roadmap looks good, and want to accelerate Bad Behavior development, <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&#038;business=EAZGZZV7RE4QJ&#038;lc=US&#038;item_name=I%20Heart%20Bad%20Behavior%202&#038;cn=Comments%20about%20Bad%20Behavior&#038;no_shipping=1&#038;rm=1&#038;return=http%3a%2f%2fwww%2ebad%2dbehavior%2eioerror%2eus%2f&#038;cancel_return=http%3a%2f%2fwww%2ebad%2dbehavior%2eioerror%2eus%2f&#038;currency_code=USD&#038;bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted8">your financial contribution</a> will help ensure that I can devote more time to its development and bring it to fruition much faster. Otherwise, I have to spend my time first on consulting and other work which brings in revenue, and that means it will be much longer before you see these features.</p>
<p>I would estimate that all of the above would take me about six months to complete if it isn&#8217;t funded. At the same time I think contributions totaling $500 or more would allow me time to complete the majority of the above within a month. I know that a lot of you are having financial trouble due to the economy; so am I. Even if you are unable to <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&#038;business=EAZGZZV7RE4QJ&#038;lc=US&#038;item_name=I%20Heart%20Bad%20Behavior%202&#038;cn=Comments%20about%20Bad%20Behavior&#038;no_shipping=1&#038;rm=1&#038;return=http%3a%2f%2fwww%2ebad%2dbehavior%2eioerror%2eus%2f&#038;cancel_return=http%3a%2f%2fwww%2ebad%2dbehavior%2eioerror%2eus%2f&#038;currency_code=USD&#038;bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted8">send a contribution</a>, please leave your comments so that I know you support Bad Behavior and wish it to continue.</p>
<p>This is also the time to send in feature requests. If Bad Behavior doesn&#8217;t do something you would like it to do, please leave a comment. (And remember that feature requests accompanied by a <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&#038;business=EAZGZZV7RE4QJ&#038;lc=US&#038;item_name=I%20Heart%20Bad%20Behavior%202&#038;cn=Comments%20about%20Bad%20Behavior&#038;no_shipping=1&#038;rm=1&#038;return=http%3a%2f%2fwww%2ebad%2dbehavior%2eioerror%2eus%2f&#038;cancel_return=http%3a%2f%2fwww%2ebad%2dbehavior%2eioerror%2eus%2f&#038;currency_code=USD&#038;bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted8">contribution</a> are more likely to be implemented sooner.) Due to a hard drive crash I&#8217;ve lost all email that was sent to me before August of this year, and possibly some more recent email as well. If you have emailed me with a feature request recently, and don&#8217;t see it included above, please also leave a comment.</p>
<p>Thank you again for your support, and here&#8217;s to a future without spam.</p>
<p>P.S. If anyone knows how to deliver electric shocks over the Internet, please contact me. This could be the ultimate spam-prevention feature. <img src='http://www.bad-behavior.ioerror.us/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bad-behavior.ioerror.us/2009/11/02/bad-behavior-2-2-status-and-roadmap/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.303 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-02-09 03:56:19 -->
<!-- Compression = gzip -->