<?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>Blog Tips &#187; Geeky Stuff</title>
	<atom:link href="http://www.blogtips.org/category/geeky/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blogtips.org</link>
	<description>Blogging and Social Media for Nonprofit</description>
	<lastBuildDate>Thu, 22 Jul 2010 01:31:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Securing your WordPress blog</title>
		<link>http://www.blogtips.org/secure-wordpress-blog/</link>
		<comments>http://www.blogtips.org/secure-wordpress-blog/#comments</comments>
		<pubDate>Tue, 25 May 2010 19:36:30 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Geeky Stuff]]></category>
		<category><![CDATA[How to... Stuff]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.blogtips.org/?p=1042</guid>
		<description><![CDATA[
Bloggers have rushed to secure their selfhosted WordPress blogs after the recent massive hacks on shared hosts. I was one of them, even though only one of my blogs was affected. I spent hours browsing, looking for good resources, common knowledge, and solid tips to form a list of quitessentials on WordPress security. I also [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img class="aligncenter" title="Old padlock" src="http://theroadtothehorizon.net/photo/old%20padlock.jpg" alt="old padlock" width="430" height="323" /></p>
<p>Bloggers have rushed to secure their selfhosted WordPress blogs after <a href="http://www.blogtips.org/analysis-of-the-latest-website-hacks/" target="_self">the recent massive hacks on shared hosts</a>. I was one of them, even though only one of my blogs was affected. I spent hours browsing, looking for good resources, common knowledge, and solid tips to form a list of quitessentials on WordPress security. I also found some useful plugins.</p>
<p>However, as with all things, there are good tips, tips that kinda work and tips that might bring you into more trouble. At the same level, you can keep on uploading plugins into WordPress until the year 2020. Each plugin is a potential hazard by itself. The developer can cease its support, leaving you standing in your underwear in the middle of Blogging Street. And the more plugins you have, the more maintenance your blog will need: upgrading to new releases might become a hassle, knowing every single release is a potential bug farm. It would not be the first time I do a quick &#8216;Upgrade&#8217; of a minor plugin &#8220;just before going to bed&#8221; only to find myself trying to get my blog to work again as &#8216;the minor upgrade&#8217; conflicted with something else and crashed the whole site. Sigh.</p>
<p><span id="more-1042"></span>So&#8230; think before you do anything hastily. For every plugin, check the forum posts related to it, check for bug reports and Google its name to see if there are any complaints.</p>
<p>In a past week, I installed several recommended plugins on some of my test blogs, and will report back if I find good and useful stuff. Meanwhile, I will restrict my recommendation to the WordPress File Monitor plugin I wrote about <a href="http://www.blogtips.org/monitor-maliciousfile-changes-wordpress-blog/" target="_self">in my previous post</a>.</p>
<p>As for the tips on security, same thing: I will restrict myself to the bare essentials. After all, I am a blogger, not a systems engineer or a web designer. I have limited time and patience to devote to the technicalities of keeping a blog up and running. I&#8217;d like to concentrate on contents more than PHP code and SQL database queries.</p>
<p>Nevertheless, I want to list some of the posts on WordPress security that have been cross referenced several times.</p>
<ul>
<li><a title="Permanent Link to 12 Essential Security Tips and  Hacks for WordPress" href="http://sixrevisions.com/wordpress/12-essential-security-tips-and-hacks-for-wordpress/" target="_blank">12 Essential Security Tips and Hacks for WordPress</a> by Syed Balkhi</li>
<li><a href="http://codex.wordpress.org/Hardening_WordPress" target="_blank">Hardening WordPress</a> from the WordPress site itself.</li>
<li><a href="http://www.noupe.com/how-tos/wordpress-security-tips-and-hacks.html" target="_blank">WordPress Security Tips and Hacks</a></li>
<li><a href="http://www.problogdesign.com/wordpress/11-best-ways-to-improve-wordpress-security/" target="_blank">11 Best Ways to Improve WordPress Security</a></li>
<li><a href="http://www.josiahcole.com/2007/07/11/almost-perfect-htaccess-file-for-wordpress-blogs/" target="_blank">The Almost Perfect htaccess File for WordPress Blogs</a> by Josiah Cole</li>
</ul>
<p>After going through all of these, I found some good tips which I will consider, some I will disregard (e.g. I can not lock any file access to a fixed IP address as I don&#8217;t work from a single location, and my ADSL lines have dynamic IPs), but there is one I highly recommend to you:</p>
<h4>Secure the wp-config.php file!</h4>
<p>If you are not familiar with the wp-config.php file in your root directory, take a look at its content&#8230;.<br />
<br/><img class="aligncenter" title="scared face" src="http://theroadtothehorizon.net/photo/scared%20face.jpg" alt="scared face" width="270" height="202" /></p>
<p>Yep, that&#8217;s right, you&#8217;d better believe your eyes&#8230; Here is the basic security access data for the inner workings of your WordPress blog. All readable in plain ASCII. So you&#8217;d better secure that file, or your blog is wide open as the Louisiana flood gates!</p>
<p>The fastest and easiest way to protect your wp-config file is by adding the following lines at the bottom of the .htaccess file on your root directory:</p>
<blockquote><p><code># BEGIN protect wpconfig.php<br />
&lt;files wp-config.php&gt;<br />
order allow,deny<br />
deny from all<br />
&lt;/files&gt;<br />
# END protect wpconfig.php<br />
</code></p></blockquote>
<p>This code basically blocks &#8220;world access&#8221; to the file.</p>
<p>Do it now. Safe blogging!</p>
<p>This WP-config tip was discovered via <a href="http://www.wpsecuritylock.com/wordpress-security-tip-how-to-protect-the-wp-config-php-file/" target="_blank">WPSecurityLock</a> and <a href="http://www.devlounge.net/code/protect-your-wordpress-wp-config-so-you-dont-get-hacked" target="_blank">DevLounge</a><br />
Pictures courtesy <a href="http://www.public-domain-image.com" target="_blank">Public Domain Image</a> and <a href="http://thenosebean.wordpress.com" target="_blank">The Nosebean&#8217;s Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogtips.org/secure-wordpress-blog/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Automatically monitor malicious file changes on your WordPress blog</title>
		<link>http://www.blogtips.org/monitor-maliciousfile-changes-wordpress-blog/</link>
		<comments>http://www.blogtips.org/monitor-maliciousfile-changes-wordpress-blog/#comments</comments>
		<pubDate>Sun, 23 May 2010 09:20:24 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Geeky Stuff]]></category>
		<category><![CDATA[How to... Stuff]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.blogtips.org/?p=999</guid>
		<description><![CDATA[
During the the latest spree of hacks in April and May, hackers dropped a malicious .PHP script on the root directory of selfhosted blogs.
The script changed all .PHP files, adding one line of code which redirected visitors to a virus-infested site, and then deleted itself. There was anything between a day and an hour between [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img class="aligncenter" title="Sherlock Holmes with magnifying glass" src="http://theroadtothehorizon.net/photo/sherlock%20holmes%20and%20magnifying%20glass.jpg" alt="Sherlock Holmes with magnifying glass" width="318" height="323" /></p>
<p>During the <a href="http://www.blogtips.org/godaddy-hacked-again-another-way-to-cure/">the latest spree of hacks</a> in April and May, hackers dropped <a href="http://www.blogtips.org/analysis-of-the-latest-website-hacks/" target="_self">a malicious .PHP script on the root directory of selfhosted blogs</a>.<br />
The script changed all .PHP files, adding one line of code which redirected visitors to a virus-infested site, and then deleted itself. There was anything between a day and an hour between the drop of the hacking .PHP file, and its self-deletion.</p>
<p>In my frantic search to close the security holes on my blogs, I came across a WordPress plugin called <a href="http://wordpress.org/extend/plugins/wordpress-file-monitor/" target="_blank">WordPress File Monitor</a> by <a href="http://mattwalters.net/blog/" target="_blank">Matt Walters</a>.</p>
<p><span id="more-999"></span>The plugin monitors your WordPress installation for any file changes incurred by scanning your directories from the root down. The plugin detects changes based on the files&#8217; hash (a number that uniquely identifies each file based on content, name and timestamp) or on the timestamp of the files only. Of course the &#8220;hash&#8221; method is more secure, but takes more computing time from your server.</p>
<p>&#8220;Changes&#8221; could be an upload of a file, the deletion of a file, or changes made inside a file.</p>
<p>You can configure the scan to happen between 1 minute and an indefinite interval. Or you can decide to only scan your files manually from the dashboard.</p>
<p>When a change is detected, a notification appears on your WordPress dashboard:</p>
<p><img class="aligncenter" title="WordPress File Monitor Dashboard warning" src="http://theroadtothehorizon.net/photo/file%20monitor%20dashboard%20warning.jpg" alt="WordPress File Monitor Dashboard warning" width="430" height="50" /></p>
<p>Clicking on &#8220;View changes&#8221; gives you more details. In our case a file called &#8220;try.php.jpg&#8221; was dropped at the root directory level:</p>
<p><img class="aligncenter" title="WordPress File Monitor Alert Notification" src="http://theroadtothehorizon.net/photo/WordPress%20File%20Monitor%20Notification.jpg" alt="WordPress File Monitor Alert Notification" width="430" height="145" /></p>
<p>Based on the alert, you can take the appropriate action, or just clear the alert.</p>
<p>You can also configure the  plugin to send an email alert to a specified address. As a test, I set the scan interval to one minute and edited the .htaccess file on my root directory. The warning email was sent immediately:</p>
<blockquote><p><code>This email is to alert you of the following changes to the file system of your website at http://www.haveimpact.org<br />
Timestamp: Sun, 23 May 2010 00:11:54 +0200</code></p>
<p><code>Changed:<br />
.htaccess</code></p></blockquote>
<p>As some directories, such as cache directories, change their information on the fly, you can exclude them from the scan.</p>
<p>This plugin is highly recommended to help you secure your selfhosted WordPress blog!</p>
<p>Read more about blog security in <a href="http://www.blogtips.org/tag/security/" target="_self">these posts</a>.</p>
<p>Picture courtesy <a href="http://www.discoveriesinmedicine.com" target="_blank">Discoveries in Medecine</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogtips.org/monitor-maliciousfile-changes-wordpress-blog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to block users uploading malware to your blog?</title>
		<link>http://www.blogtips.org/avoid-users-uploading-malware/</link>
		<comments>http://www.blogtips.org/avoid-users-uploading-malware/#comments</comments>
		<pubDate>Sat, 22 May 2010 18:35:21 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Geeky Stuff]]></category>
		<category><![CDATA[How to... Stuff]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.blogtips.org/?p=1013</guid>
		<description><![CDATA[Many shared hosts don't protect you from users uploading and executing malicious code to your website. Here is how to close that loop hole for hackers.]]></description>
			<content:encoded><![CDATA[<p></p><p><img alt="Drop the bomb" src="http://theroadtothehorizon.net/icon/other/drop%20the%20bomb.jpg" title="Drop the bomb" class="aligncenter" width="206" height="200" /></p>
<p>While <a href="http://www.blogtips.org/analysis-of-the-latest-website-hacks/">researching ways to better protect my blog</a>, I discovered a loophole typical for selfhosted sites on shared servers, such as GoDaddy.</p>
<p>The loophole concerns all PHP based CMS (Contents Management Systems), including WordPress, Drupal, Joomla, phpBB, etc&#8230;: Many of them allow users to upload files: Forums allow attachments to posts, users can upload their avatar in .jpg format, some comment systems allow code to be embedded. Combine this with shared-hosting services like mine, GoDaddy, which allow files without the .php extension to be executed as if they were PHP code, and you have a hacker&#8217;s bomb.</p>
<p>Here is how you can simulate a file drop hack:</p>
<p><span id="more-1013"></span>
<ol>
<li> Create a simple text file with a simple text editor and put the following PHP code in it:<br/><br />
<blockquote><p><code>php<br />
phpinfo();<br />
?&gt;</code></p></blockquote>
<p>This code does no harm. The command only displays the basic PHP variables for your site, but a hacker could put any malicious PHP code in it, <a href="http://blog.sucuri.net/2010/05/found-code-used-to-inject-malware-at.html" target="_blank">including code that modifies all files on your site</a>.</li>
<li>Save it as test.php.jpg</li>
<li>FTP it to the root of your site</li>
<li>Execute it in your browser (and you don&#8217;t have to be logged in) as:<code> http://www.yoursite.com/test.php.jpg</code></li>
<li>If you get a &#8220;Page not Found&#8221; error, you are cool, and your hosting service protects you from this hacking method. But if you see something like this screen, the output from the php-code you just uploaded, your host is vulnerable:</li>
<p><br/><img class="aligncenter" title="test screen output" src="http://theroadtothehorizon.net/photo/screen%20output%20from%20test.jpg" alt="test screen output" width="400" height="344" /><br />
&#8230; and if the code were malicious, the user just dropped a hacker&#8217;s bomb on your site&#8230;.</ol>
<p>Sure enough, a user does not have FTP access to your site (I hope!). But&#8230; as long as he can upload the file, even as a disguised .jpg file as in our example, and figure out where the uploaded file  is stored in your site&#8217;s file structure, he can execute it.</p>
<p>How can you can protect your blog from users uploading disguised PHP file? This <a href="http://core.trac.wordpress.org/ticket/11122">documented vulnerability</a> can be corrected by adding some code at the bottom of your .htaccess file in the root directory of your blog (or any PHP-based CMS):</p>
<ol>
<li>As for any changes you make to any file on your site, first backup the .htaccess file, so you can roll back in case it does not work for you.</li>
<li>Edit the .htaccess file and add the following piece of code at the bottom:<br />
<br/><br />
<blockquote><code># BEGIN drop-file hack stopper<br />
RemoveHandler application/x-httpd-php .php<br />
&lt;FilesMatch ".(php|php5|php4|php3|phtml|phpt)$"&gt;<br />
SetHandler x-httpd-php5<br />
<!--<span class="hiddenSpellError" pre=""-->FilesMatch&gt;<br />
&lt;FilesMatch ".phps$"&gt;<br />
SetHandler x-httpd-php5-source<br />
&lt;/FilesMatch&gt;<br />
# END drop-file hack stopper</code></p></blockquote>
</li>
<li>Upload the modified .htaccess file to your root directory</li>
<li> Now, assuming you still have the test.php.jpg on your root directory, try executing it again with the same command: <code>http://www.yoursite.com/test.php.jpg</code></li>
</ol>
<p>If now, you get a &#8216;Page not Found&#8217; error, then you are protected. At least for this hack, that is.</p>
<p>One word of caution: this was NOT the method used in <a href="http://www.blogtips.org/how-to-check-if-your-blog-is-infected-with-malware/" target="_self">the most recent massive hack affecting thousands of sites</a>, as <a href="http://www.blogtips.org/analysis-of-the-latest-website-hacks/" target="_blank">described in this post</a>, but at least it closes one more door for hackers. A door which gives them unlimited access to your website.</p>
<p>Safe blogging!</p>
<p>Cartoon courtesy <a href="http://www.sos.state.or.us/archives/exhibits/ww2/" target="_blank">Life on the Homefront</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogtips.org/avoid-users-uploading-malware/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An analysis of the latest website hacks</title>
		<link>http://www.blogtips.org/analysis-of-the-latest-website-hacks/</link>
		<comments>http://www.blogtips.org/analysis-of-the-latest-website-hacks/#comments</comments>
		<pubDate>Fri, 21 May 2010 02:42:52 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[FYI Stuff]]></category>
		<category><![CDATA[Geeky Stuff]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.blogtips.org/?p=1001</guid>
		<description><![CDATA[After the latest spree of hacks on thousands of websites, it is time to look at some of the commonalities and ways to security our sites better. Given that the security holes are clearly at the level of the website hosting companies, and it is their duty to close those holes, nothing stops us from [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="wp-caption aligncenter" style="width: 400px">
	<img title="Vesalius" src="http://theroadtothehorizon.net/photo/Vesalius.jpg" alt="Vesalius" width="400" height="393" />
	<p class="wp-caption-text">If Vesalius were a blogger...</p>
</div>
<p>After <a href="http://www.blogtips.org/godaddy-hacked-again-another-way-to-cure/">the latest spree of hacks</a> on thousands of websites, it is time to look at some of the commonalities and ways to security our sites better. Given that the security holes are clearly at the level of the website hosting companies, and it is their duty to close those holes, nothing stops us from securing our own sites better. That is what our next series will be about: how to secure our self hosted blogs.</p>
<p><span id="more-1001"></span>Godaddy published <a href="http://community.godaddy.com/godaddy/the-latest-information-on-compromised-sites/" target="_blank">more background information on their blog</a>:</p>
<blockquote><p>This is a complex attack with many components. Here is a high-level overview of how they occur:</p>
<ol>
<li>The attacker is coordinating attacks against three different hosting providers for this to work.
<ul>
<li>At Hosting Provider ‘A’ – A malicious file is placed on hosting accounts at this provider. No two files have the same name.</li>
<li>At Hosting Provider ‘B’ – A file is uploaded listing the infected domain names and unique file names from provider ‘A.’</li>
<li>At Hosting Provider ‘C’ – A malicious “scareware” site is placed on compromised accounts</li>
</ul>
</li>
<li>After the attackers put their files in place, they use Hosting Provider ‘B’ to trigger the malicious files on Hosting Provider ‘A.’ When triggered, the malicious file:
<ul>
<li>Scans the hosting account for any php file</li>
<li>Injects malicious content, installing malware that directs to Hosting Provider ‘C’</li>
<li>Removes any trace of itself from ‘Hosting Provider B’</li>
</ul>
</li>
<li>The attack is complete when an infected website receives a visitor. The visitor, if not adequately protected, will have malware installed on their machine.</li>
<li>The malware will alert the infected computer to purchase fake anti-virus software, located at Hosting Provider ‘C.’</li>
</ol>
</blockquote>
<p>The common factors of all the recent hacks are:</p>
<ol>
<li>The  affected sites were all .PHP based CMS&#8217;s (Content Management Systems):  WordPress, Drupal, Joomla, phpBB&#8230;</li>
<li>A .php file was put on the root directory of the  website, executed a few hours later, and then deleted (<a href="http://blog.sucuri.net/2010/05/found-code-used-to-inject-malware-at.html" target="_blank">more</a>).</li>
<li>While  executing, the .php file inserted malicious code in all .php files of  your site which redirected visitors to a site which infected the  visitor&#8217;s computer with a virus. (<a href="http://blog.sucuri.net/2010/05/continuing-attacks-at-godaddy.html" target="_blank">more</a>)</li>
</ol>
<p>So the basic questions are:</p>
<ol>
<li>How can we avoid .php file being dropped on our site?</li>
<li>If a .php file is dropped through a hosting provider&#8217;s security hole, how can we detect it fast, before it executes?</li>
<li>If our .php files are infected, how do we cure them easily?</li>
</ol>
<p>Again, while we can not close the security hole of the hosting providers, we sure can take some measures to either tighten the hole ourselves, or at least monitor the changes happening on our sites?</p>
<p>Some solutions:<br />
In <a href="http://www.blogtips.org/monitor-maliciousfile-changes-wordpress-blog/" target="_self">this post</a>, I suggest a solution to monitor for file changes and uploads on your selfhosted WordPress blog.<br />
In <a href="http://www.blogtips.org/godaddy-hacked-again-another-way-to-cure/" target="_self">this post</a>, I described how to cure infested files.<br />
<a href="http://www.blogtips.org/secure-wordpress-blog/" target="_self">Here</a>, I describe how to protect login information being read from our WordPress blog.</p>
<p>Safe blogging!</p>
<p>Picture courtesy <a href="http://wikimedia.org" target="_blank">WikiMedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogtips.org/analysis-of-the-latest-website-hacks/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Godaddy hacked again. Another way to cure your site.</title>
		<link>http://www.blogtips.org/godaddy-hacked-again-another-way-to-cure/</link>
		<comments>http://www.blogtips.org/godaddy-hacked-again-another-way-to-cure/#comments</comments>
		<pubDate>Mon, 17 May 2010 17:10:13 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Geeky Stuff]]></category>
		<category><![CDATA[How to... Stuff]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.blogtips.org/?p=948</guid>
		<description><![CDATA[
Godaddy got hacked again this morning (This is what Godaddy has to say about it). Update: and again on May 20.
If you host your blog on Godaddy, you would do well to check your site regularly for any malware, and here is how.
The hack is the same as the previous 4 hacks, affecting thousands of [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img class="aligncenter" title="hacker" src="http://theroadtothehorizon.net/photo/hacker-1.jpg" alt="hacker" width="279" height="300" /></p>
<p>Godaddy got <a href="http://blog.sucuri.net/2010/05/continuing-attacks-at-godaddy.html" target="_blank">hacked again</a> this morning (<a href="http://community.godaddy.com/support/?isc=smtwsup" target="_blank">This</a> is what Godaddy has to say about it). <span style="color: #ff00ff;">Update:</span> <a href="http://blog.sucuri.net/2010/05/here-we-go-again-problem-at-godaddy.html" target="_blank">and again on May 20</a>.<br />
If you host your blog on Godaddy, you would do well to check your site regularly for any malware, and <a href="http://www.blogtips.org/how-to-check-if-your-blog-is-infected-with-malware/">here</a> is how.</p>
<p>The hack is the same as the previous 4 hacks, affecting thousands of sites: A oneliner malware code is inserted in every single .php file on your site, starting with:</p>
<blockquote><p><code>?php /**/ eval(base64_decode("goobledegoob"))</code></p></blockquote>
<p>I described <a href="http://www.blogtips.org/how-to-cure-your-godaddy-wordpress-hacked-blog/">before how to cure it</a>, but here is another, slightly more sophisticated way which first lists the infected files, prompts to continue, deletes the oneliner malware in all of your .php files, and lists the cured files. It is inspired by a script written by Andy Stratton in <a href="http://theandystratton.com/2010/godaddy-shared-linux-hosting-hack-fix" target="_blank">this post</a>.</p>
<p>The script will not only work for Godaddy + Wordpress, but for any .PHP based site (I used it this morning to cure a Drupal site) on any host.</p>
<p><span id="more-948"></span>Here are the right steps to follow:</p>
<ol>
<li>Make sure you backup your site, just to make sure. There are many tools to do so, but a &#8220;brute force&#8221; copy of your entire blog directory to your local computer using an FTP tool like <a href="http://filezilla-project.org/" target="_blank">Filezilla</a>, works fine.</li>
<li>Download <a href="http://theroadtothehorizon.net/script/fixfiles.zip">this zip file</a>. It contains a file called &#8220;fixfiles.php&#8221;. Extract it and store it on your computer.<br />
(Ok, no zipfile? <a href="http://theroadtothehorizon.net/script/fixfilesphp.txt" target="_blank">Here</a> is the fixfilesphp.txt version. Save it as fixfiles.php)</li>
<li>FTP the &#8220;fixfiles.php&#8221; file to the root directory of your blog. In GoDaddy, that is the /HTML directory (which also contains index.php, wp-login.php etc..):
<p><br/><div class="wp-caption aligncenter" style="width: 400px">
	<img title="GoDaddy Root Directory" src="http://theroadtothehorizon.net/photo/godaddy%20root%20directory.jpg" alt="GoDaddy Root Directory" width="400" height="233" />
	<p class="wp-caption-text">GoDaddy Root Directory</p>
</div></p>
<p>If you only want to clean a subdirectory (and its underlying tree), put the file in that the subdirectory, but remember also the command in the next line will have to reflect that.</li>
<li>Then execute the code with the command:<br />
<blockquote><p><code>http://yoursite.com/fixfiles.php</code></p></blockquote>
<p>or</p>
<blockquote><p><code>http://yoursite.com/subdir/fixfiles.php<br />
</code></p></blockquote>
<p>if you put it in a sub directory)</li>
<li>The code will first scan for the malware code in your files, in both the directory it is put, and all underlying directories.<br />
If you get the message:</p>
<blockquote><p><code>0 Infected Files in ./</code></p></blockquote>
<p>&#8230;then your site is clean.<br />
If any malware is found, the script will list the infected files and prompt you to fix them:</p>
<p><img class="aligncenter" title="malware found - fix the files" src="http://theroadtothehorizon.net/photo/infected%20files%20message.jpg" alt="malware found - fix the files" width="250" height="125" />Click on &#8220;Fix Files&#8221;, Click OK on the prompt to proceed:</p>
<p><img class="aligncenter" title="Prompt to fix malware" src="http://theroadtothehorizon.net/photo/prompt%20to%20continue%20fixfiles.jpg" alt="Prompt to fix malware" width="300" height="95" /><br />
The script will scan through all files again, and clean the malware. It will list all files that were cleaned.</p>
<p><img class="aligncenter" title="Malware scan finished" src="http://theroadtothehorizon.net/photo/malware%20scan%20finished.jpg" alt="Malware scan finished" width="250" height="47" /></li>
<li>Delete the &#8220;fixfiles.php&#8221; file from your site after execution.</li>
<li>If you are using a caching plug-in, don&#8217;t forget to <strong>CLEAR YOUR CACHE</strong>, otherwise the malware will continue to be served to your users, even though you cleaned your .php code</li>
</ol>
<p>All of that is &#8220;curing&#8221; the problem. I have looked everywhere, but am yet to find a way to &#8220;avoid&#8221; the infection. It looks like the hackers found a loophole in Linux shared hosts (and not just those on Godaddy), which the hosting companies have been unable to identify and/or close.</p>
<p>Until such time, scan your sites every day, and cure the problem immediately before your visitors get infected.</p>
<p>Picture courtesy <a href="www.owningpink.com" target="_blank">Owning Pink</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogtips.org/godaddy-hacked-again-another-way-to-cure/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>How to check if your blog is infected with malware?</title>
		<link>http://www.blogtips.org/how-to-check-if-your-blog-is-infected-with-malware/</link>
		<comments>http://www.blogtips.org/how-to-check-if-your-blog-is-infected-with-malware/#comments</comments>
		<pubDate>Fri, 14 May 2010 02:06:28 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Geeky Stuff]]></category>
		<category><![CDATA[How to... Stuff]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.blogtips.org/?p=933</guid>
		<description><![CDATA[I reported before how to detect if your blog was infected with the recent massive hackers attacks on hosting sites, and how to cure it.
As a follow up, here is the easiest way to detect if your blog has the malware injected: Use the sucuri.net free scanner !
Just enter you blog URL including &#8220;http://&#8221;, press [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="wp-caption aligncenter" style="width: 430px">
	<img title="Sucuri.net malware scanner" src="http://theroadtothehorizon.net/photo/malware%20scan.jpg" alt="Sucuri.net malware scanner" width="430" height="256" />
	<p class="wp-caption-text">Sucuri.net malware scanner</p>
</div>
<p>I reported <a href="http://www.blogtips.org/how-to-cure-your-godaddy-wordpress-hacked-blog/">before</a> how to detect if your blog was infected with the recent massive hackers attacks on hosting sites, and how to cure it.</p>
<p>As a follow up, here is the easiest way to detect if your blog has the malware injected: Use the <a href="http://sucuri.net/?page=scan" target="_blank">sucuri.net free scanner</a> !</p>
<p>Just enter you blog URL including &#8220;http://&#8221;, press &#8220;Scan&#8221;, and there you go.</p>
<p>If the &#8220;Malware information&#8221; tab goes red, this means that -unfortunately- your site has been infected.</p>
<p>Cure the problem immediately as I described <a href="http://www.blogtips.org/how-to-cure-your-godaddy-wordpress-hacked-blog/">in this post</a>.</p>
<p>If you are a technically a bit more savy, in <a href="http://www.blogtips.org/godaddy-hacked-again-another-way-to-cure/">this post</a> I describe a script that verifies the infection and cures it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogtips.org/how-to-check-if-your-blog-is-infected-with-malware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to cure your GoDaddy WordPress hacked blog</title>
		<link>http://www.blogtips.org/how-to-cure-your-godaddy-wordpress-hacked-blog/</link>
		<comments>http://www.blogtips.org/how-to-cure-your-godaddy-wordpress-hacked-blog/#comments</comments>
		<pubDate>Sun, 09 May 2010 05:30:36 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Geeky Stuff]]></category>
		<category><![CDATA[How to... Stuff]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.blogtips.org/?p=925</guid>
		<description><![CDATA[
Update: I adapted a script to easily verify and cure the infection on your site. Check this post for more.
The GoDaddy hosting service got hacked three times in a row now. On April 27, May 1 and May 7, many sites, including thousands of WordPress blogs, got infected by malware code. Update: GoDaddy hosted sites [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img class="aligncenter" title="hacker" src="http://theroadtothehorizon.net/photo/hacker.jpg" alt="hacker" width="400" height="267" /></p>
<p><span style="color: #ff00ff;">Update: I adapted a script to easily verify and cure the infection on your site. Check <a href="http://www.blogtips.org/godaddy-hacked-again-another-way-to-cure/">this post</a> for more.</span></p>
<p>The GoDaddy hosting service got hacked three times in a row now. On April 27, May 1 and May 7, many sites, including thousands of WordPress blogs, got infected by malware code. <span style="color: #ff00ff;">Update:</span> GoDaddy hosted sites were massively attacked again on May 12 and May 17.<br />
In <a href="http://www.blogtips.org/selfhosting-or-not-hackers/">a recent post</a>, I described how I found out the hard way my Drupal site was hacked, and how I cured it the hard way.</p>
<p>Last night, BlogTips was hacked too, but this time, I was able to cure the problem faster.</p>
<p>The problem is so wide spread, and the impact for the infected blogs is that devastating it is worth to checking yours too, if it is hosted on GoDaddy. Once infected, you need to cure your blog real fast before browsers and search engines blacklist your blog. Here is how:</p>
<p><span id="more-925"></span></p>
<h4>1. Check if your blog is infected</h4>
<p>If your blog is part of the recent GoDaddy attacks, you (and your visitors) might see it if your site redirects to a malware site which gives a Windows-like screen asking to scan your computer.</p>
<p>The easiest way, however, is to check some of your .php files. If the first line of the file starts with:</p>
<blockquote><p><code>?php /**/ eval(base64_decode("goobledegoob"))</code></p></blockquote>
<p>(where &#8220;goobledegoob&#8221; is a long series of numbers and characters), then unfortunately my friend, your site was hacked too.</p>
<h4>2. How to cure it</h4>
<p>Cure the problem fast before your users and search engines start mistrusting your blog. Thecremedy is to remove that one-liner with the hack code from all your .php files. You can do that manually, but you&#8217;ll be busy for quite a while.</p>
<p>An easier solution is offered in <a href="http://blog.sucuri.net/2010/05/simple-cleanup-solution-for-latest.html" target="_blank">this post</a> by the folks of <a href="http://www.sucuri.net" target="_blank">Sucuri Security</a>.</p>
<ol>
<li>save <a href="http://sucuri.net/malware/helpers/wordpress-fix_php.txt">this PHP code</a> in a file called &#8220;wordpress-fix.php&#8221; on your computer. It contains two basic commands to remove the EVAL malware code, and extra empty lines from all your .PHP files on your root directory and all sub directories.<br />
<span style="color: #ff00ff;">Update:</span> to avoid the script to time-out before all files are cleaned up, you might add  the line<br />
<code>set_time_limit(0);</code><br />
as the first PHP command</li>
<li>FTP the &#8220;wordpress-fix.php&#8221; file to the root directory of your blog. In GoDaddy, that is the /HTML directory (which also contains index.php, wp-login.php etc..):
<p><div class="wp-caption aligncenter" style="width: 400px">
	<img title="GoDaddy Root Directory" src="http://theroadtothehorizon.net/photo/godaddy%20root%20directory.jpg" alt="GoDaddy Root Directory" width="400" height="233" />
	<p class="wp-caption-text">GoDaddy Root Directory</p>
</div></li>
<li>Then execute the code with the command: <code>http://yoursite.com/wordpress-fix.php</code></li>
<li>Delete the wordpress-fix.php file after execution.</li>
<li><span style="color: #ff00ff;">Update:</span> if you are using a caching plug-in, don&#8217;t forget to <strong>CLEAR YOUR CACHE</strong>, otherwise the malware will continue to be served to your users, even though you cleaned your .php code</li>
</ol>
<h4>3. How to prevent from being hacked?</h4>
<p>Well, at this moment, it looks like it is GoDaddy being hacked, and not the individual blogs. It is still advised to change your FTP password, and your admin password on your blog, but that by itself does not seem to prevent new hacks. One of my sites got hacked twice in a row.</p>
<p>You can also subscribe to <a href="http://sucuri.net" target="_blank">Sucuri&#8217;s free malware monitoring service</a>, so they can scan your blog automatically for malware,&#8230;</p>
<p>Let&#8217;s hope GoDaddy gets their security back inline quickly, otherwise we are all in deep poohooh for a while! <img src='http://www.blogtips.org/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Picture courtesy <a href="http://www.thetechherald.com" target="_blank">TheTechHerald</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogtips.org/how-to-cure-your-godaddy-wordpress-hacked-blog/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Selfhosting or not: Hackers</title>
		<link>http://www.blogtips.org/selfhosting-or-not-hackers/</link>
		<comments>http://www.blogtips.org/selfhosting-or-not-hackers/#comments</comments>
		<pubDate>Wed, 05 May 2010 00:59:44 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Geeky Stuff]]></category>
		<category><![CDATA[How to... Stuff]]></category>
		<category><![CDATA[Blogger]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.blogtips.org/?p=911</guid>
		<description><![CDATA[
In a previous post, part of a series about selecting the right blog platform, I urged you to think if you want to selfhost your blog or not. I revisited the subject, stressing the fact that when you choose for selfhosting, you should be aware of the many things bloghosting platforms like Blogger would do [...]]]></description>
			<content:encoded><![CDATA[<p></p><p style="text-align: center;"><img class="aligncenter" title="hackers" src="http://theroadtothehorizon.net/photo/hacker-inside.png" alt="hackers" width="188" height="165" /></p>
<p>In a <a href="http://www.blogtips.org/selecting-a-blog-platform-selfhost-your-blog-or-not/">previous post</a>, part of <a href="http://www.blogtips.org/category/blogtips-primers/selecting-a-blog-platform/">a series about selecting the right blog platform</a>, I urged you to think if you want to selfhost your blog or not. I <a href="http://www.blogtips.org/selfhosting-your-blog-or-not/" target="_self">revisited the subject</a><a href="http://www.blogtips.org/selfhosting-your-blog-or-not/"></a>, stressing the fact that when you choose for selfhosting, you should be aware of the many things bloghosting platforms like <a href="http://www.blogger.com" target="_blank">Blogger</a> would do for you, you&#8217;d have to do yourself. And that includes a lot of technical stuff. Are you prepared to dive into the technical part of the maintenance of your blog, potentially diverting your attention from writing good contents?</p>
<p>I want to drive the point even further: when you choose to selfhost your blog on a hosting provider, like <a href="http://godaddy.com" target="_blank">Godaddy</a> or <a href="http://www.networksolutions.com/" target="_blank">Network Solutions</a>, there is one more thing to be extra cautions about: hackers.<br />
<span id="more-911"></span><br />
OK, running any kind of blog, you have to ensure basic password security for your administrator&#8217;s account, and not use obvious passwords like &#8220;admin&#8221; or &#8220;password&#8221; or &#8220;secret&#8221; (don&#8217;t laugh!), but also the hosting company itself can be vulnerable to attacks, without any of your wrongdoing. And recently, hackers have concentrated their attacks on these companies. I guess their reasoning is &#8220;why to concentrate on a single blogsite, if we can attack thousands of sites at once when we attack a single hosting site&#8221;&#8230;</p>
<p>Recently <a href="http://godaddy.com" target="_blank">Godaddy</a> has been a victim of two series of attacks, one <a href="http://ddanchev.blogspot.com/2010/04/godaddys-mass-wordpress-blogs.html" target="_blank">on April 27</a> and a second one <a href="http://blog.sucuri.net/2010/05/second-round-of-godaddy-sites-hacked.html" target="_blank">on May 1</a>. I was a victim of both attacks for one of my sites. Even though my particular site was running Drupal, and no conventional blogsoftware, most of the affected sites were WordPress blogs. Following several forums on the subject, <a href="http://www.neowin.net/forum/topic/897610-godaddy-got-hacked-yesterday/" target="_blank">it seems like thousands of blogs</a> were infected.</p>
<p>While this is not a post about hacking techniques, and what to do to cure hacking attacks, let me describe to you what I went through in discovering and curing the hack so it helps you make up your mind if you really want to go to selfhosting your blog&#8230;</p>
<h4>When I wake up in the morning, love</h4>
<p>On the beautiful morning of April 28th, I woke up and checked some of my sites. <a href="http://theotherworldnews.blogspot.com" target="_blank">One of them</a> is a simple Blogger blog showing the latest posts for <a href="http://www.humanitariannews.org" target="_blank">Humanitarian News</a>, my mega aggregator of nonprofit news. I noticed the posts were not refreshed, and showed an error in retrieving the RSS feed from the mother site. I use a simple RSS to Java tool, described in <a href="http://www.blogtips.org/free-rss-tools/" target="_self">this post</a> to generate the posts, so trying to debug the problem using <a href="http://feedvalidator.org" target="_blank">Feedvalidator</a>, I found out the feed from Humanitarian News was seen as invalid. I did not think much of it at that moment, although now I know it was a symptom of a hack.</p>
<p>A few days later, Humanitarian News no longer loaded on my Iphone browser, so I checked it on my laptop, only to find that my site was redirected to a malware site. Darned.</p>
<h4>Panic</h4>
<p>My instinct told me to check the index.php file, the root of my site. I found one line of code was inserted in the file, which looked like</p>
<blockquote><p><code>?php /**/ eval(base64_decode("goobledegoob"))</code></p></blockquote>
<p>Thus, panic in the house! Using Filezilla, I checked more .php files, and more, and more. All the same: each had the php one-liner inserted. Darned once more.</p>
<p>I googled the code, and found that the one liner was the actual hack. When browsing the website, users were redirected to the malware site. I knew that I had to act fast, otherwise browsers would soon show this infamous screen, the nightmare for any webmaster:</p>
<div class="wp-caption aligncenter" style="width: 400px">
	<img title="Firefox badware screen" src="http://theroadtothehorizon.net/photo/badware-firefox-warning.jpg" alt="Firefox badware screen" width="400" height="182" />
	<p class="wp-caption-text">Firefox Badware warning</p>
</div>
<p>&#8230;and in no time Google would report my site as harmful. So I had to act quickly. It was then 10 pm&#8230;</p>
<p>At first, I started to clean up all .php files manually, deleting the intrusive one liner, but soon gave up. Suspecting a vulnerability in Drupal, my CMS, I decided to put the site offline, and reinstall the software from scratch, including all themes and plugins. Luckily, I keep a good track of each of these, for all my sites. It took me about four hours before I had my site back up. 2 am. Sigh, but with a clean site.</p>
<p>Before going to bed, I decided to back up my entire website onto my laptop. A good decision, it seemed afterwards. I also changed the admin passwords, blocked all other user passwords, and changed the FTP password.</p>
<h4>Argh, not again?!</h4>
<p>On May 1, I saw the same problem popping up with the RSS feed. I checked the index.php file, and exactly the same problem: I was hacked, once more. Again, I put the site offline, and this time, restored the entire site from my backup. Three hours of work.</p>
<p>This time, I googled a bit deeper, and <a href="http://ddanchev.blogspot.com/2010/04/godaddys-mass-wordpress-blogs.html" target="_blank">found that indeed</a>, I was not alone. Thousands of sites had been attacked, all hosted on Godaddy, my hosting company! Following some of the forum discussions, it looks like even today, <a href="http://community.godaddy.com/groups/go-daddy-hosting-connection/forum/topic/wordpress-compromisedhhow-to-fix-it/?isc=smfor1" target="_blank">Godaddy blames vulnerabilities of WordPres</a>s, although it was soon clear many other sites using different CMS-es were attacked. Mine was only one example, I was using Drupal. Beh.</p>
<h4>Selfhosting or not, revisited</h4>
<p>While <a href="http://www.wpsecuritylock.com/breaking-news-dangerous-malware-alert-self-hosted-sites-on-major-hosting-service-hacked-again/" target="_blank">the experts are still trying to analyse</a> how the security on so many sites was compromised, it looks like it is a common and pretty recent problem with hosting companies becoming an easy (it seems) target for hackers. While we have not seen the end of it yet, it does stress the importance of the question: <a href="http://www.blogtips.org/selfhosting-your-blog-or-not/" target="_blank">Do I really want to selfhost my blog</a>?</p>
<p>That question is not just related to money, to self-reliance &#8211; call it independence &#8211; but much more &#8220;Do I really have the technical savvy, and the time, to technically manage my site?&#8221;. Or in other plain words: Do I want to blog, or do I want to become a webmaster?</p>
<p>Update: 2010 will probably go down in history as the &#8220;black year for PHP hosted sites on shared servers&#8221;. The 5th wave of hacking is going on as we speak, and the hosting companies are still to work out a way to avoid the hackers to get in. Meanwhile, it is important <a href="http://www.blogtips.org/how-to-check-if-your-blog-is-infected-with-malware/" target="_self">you check your site</a> for infections several times. If you find the infection, <a href="http://www.blogtips.org/godaddy-hacked-again-another-way-to-cure/" target="_self">cure it immediately</a>. If not, malware will spread to your visitors.</p>
<p>Picture courtesy <a href="http://hughbriss.com" target="_blank">HughBriss</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogtips.org/selfhosting-or-not-hackers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The best free and sophisticated RSS tools</title>
		<link>http://www.blogtips.org/free-rss-tools/</link>
		<comments>http://www.blogtips.org/free-rss-tools/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 21:44:09 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Geeky Stuff]]></category>
		<category><![CDATA[How to... Stuff]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[Yahoo Pipes]]></category>

		<guid isPermaLink="false">http://www.blogtips.org/?p=764</guid>
		<description><![CDATA[
The past few weeks, I have been quite busy working with RSS feeds. I continue to be surprised about the possibilities RSS gives us, bloggers and web developers alike.
Here is an overview of the tools I discovered:
From RSS feed to Javascript: Feed2JS
If you want to spice up a page on your website, or integrate a [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img class="aligncenter" title="RSS 3D" src="http://theroadtothehorizon.net/photo/rss%203D.jpg" alt="" width="410" height="308" /></p>
<p>The past few weeks, I have been quite busy working with <a href="http://blogtips.org/?p=21">RSS feeds</a>. I continue to be surprised about the possibilities RSS gives us, bloggers and web developers alike.</p>
<p>Here is an overview of the tools I discovered:</p>
<h4>From RSS feed to Javascript: Feed2JS</h4>
<p>If you want to spice up a page on your website, or integrate a feed into a blog widget, then have a look at <a href="http://feed2js.org/" target="_blank">Feed2JS</a>. They offer an easy, fast and gratis way to convert any RSS feed into a simple Javascript. Each time the page with that Javascript is run, it displays the contents of the feed as if it were content on your page.</p>
<p><span id="more-764"></span>As an example, I took this feed from <a href="http://www.humanitariannews.org" target="_blank">Humanitarian News</a>:</p>
<blockquote><p><code>http://humanitariannews.org/blog/9/feed</code></p></blockquote>
<p>&#8230;and ran it through <a href="http://feed2js.org/index.php?s=build" target="_blank">their feed2JS builder</a>. You can customize the options: display the content of each feed item &#8211; or only the first x characters, open the links in a new browser window or not,&#8230; If you are really sophisticated, you can even customize the style sheet.</p>
<p>Hit &#8220;Generate JavaScript&#8221;, and you will get the code to integrate on your site. In my case, the code snippet looked like this:</p>
<blockquote><p><code>&lt;script language="JavaScript" src="http://feed2js.org//feed2js.php?src=http%3A%2F%2Fhumanitariannews.org%2Fblog%2F9%2Ffeed&amp;amp;chan=y&amp;amp;desc=1&amp;amp;targ=y" type="text/javascript"&gt;&lt;/script&gt;</code></p></blockquote>
<p>To see the script in action: I used this code to generate the latest &#8220;Aid News&#8221; updates on <a href="http://theotherworldnews.blogspot.com" target="_blank">The Other World News</a>.</p>
<h4>Create an RSS feed for any website: Feedity</h4>
<p>How about websites which don&#8217;t have an RSS feed? No panic, <a href="http://feedity.com/" target="_blank">Feedity</a> comes to your rescue. Their basic (free) service will generate an RSS feed out of any website. The only thing you need to do, is to jug in a URL for any website, refine which items you typically would like to include in the feed, and Feedity does its job.</p>
<p>As an example, let&#8217;s do something really interesting. Let&#8217;s create an RSS feed with the latest sites which link  to <a href="http://www.theroadtothehorizon.org" target="_blank">The Road to the Horizon</a>, one of my blogs.</p>
<p>The Google URL to search for in-bound links to this blog is:</p>
<blockquote><p><code>http://www.google.com/search?q=%22www.theroadtothehorizon.org%22+-site:theroadtothehorizon.org</code></p></blockquote>
<p>When we feed this URL into <a href="http://feedity.com/">Feedity</a> and hit &#8220;Preview&#8221;, we don&#8217;t get much:</p>
<p><img class="aligncenter" title="Feedity screen shot" src="http://theroadtothehorizon.net/photo/feedity%20screenshot.jpg" alt="" width="410" height="199" /></p>
<p>&#8230;but you have to &#8220;teach&#8221; Feedity what items on the page to look for before it can convert webcontent into an RSS feed: Use the &#8220;Simple Refine&#8221; drop down menu to select an example of what you are looking for, hit &#8220;Refine&#8221; and.. voila:<br />
<img class="aligncenter" title="Feedity screen shot" src="http://theroadtothehorizon.net/photo/feedity%20screenshot%202.jpg" alt="" width="410" height="199" /></p>
<p>Hit &#8220;Get Feed&#8221; and you are done. In the example of the above case, the URL for the feed generated from this Google site search is:</p>
<blockquote><p><code>http://feedity.com/rss.aspx/google-com/UlVQU1Bb</code></p></blockquote>
<p>..which generates this result:</p>
<p><img class="aligncenter" title="Feedity screen shot" src="http://theroadtothehorizon.net/photo/feedity%20screenshot%203.jpg" alt="" width="410" height="199" /></p>
<p>Now please tell me this is pretty neat?!</p>
<p>Feedity lets you define up to 10 RSS feeds for free, updated 5 times per day, and displaying a maximum of 10 items. If you want more, you&#8217;ll have to pay. Nonprofits, bloggers and humanitarian organisations get a significant discount.</p>
<h4>RSS tools for all needs: xFruits</h4>
<p>Moving on from geeky to geekier: <a href="http://www.xfruits.com" target="_blank">xFruits</a> offers a 11 sophisticated RSS manipulation tools for free:</p>
<ul>
<li>Aggregate several RSS feeds into one</li>
<li>Generate an HTML webpage out of your RSS feed</li>
<li>Generate an HTML webpage suited for mobile users out of your RSS feed</li>
<li>Generate an RSS feed from Emails anyone sends to your xFruits Email account, or from the unread emails in your Email box</li>
<li>Create a PDF from any RSS feed</li>
<li>Generate an Email with the updates of any RSS feed</li>
<li>Convert RSS to OPML, and create a webpage compatible with mobile devices from your OPML</li>
<li>Publish your RSS feed on the most popular blog platforms, using their APIs</li>
<li>And last but not least, convert your RSS feed to Podcasts&#8230;</li>
</ul>
<p>Let&#8217;s just take the last one to illustrate the  power of RSS feeds. Let&#8217;s take the <a href="http://feeds.feedburner.com/HaveImpact" target="_blank">feed</a> from <a href="http://www.haveimpact.org" target="_blank">Have Impact !</a>, our micro finance project and run it through the RSS-to-Voice function. The <a href="http://vocalfruits.com/petercasier/wcb0cc/" target="_blank">web output</a> looks like this:</p>
<p><img class="aligncenter" title="xFruits RSS to Voice utility" src="http://theroadtothehorizon.net/photo/xfruits%20rss%20to%20voice.jpg" alt="" width="410" height="341" /></p>
<p>It looks like my original RSS feed, but a podcast icon is added before every post. Give it a try and listen to the quality of the spoken voice. Good, hey?<br />
Check out how the same RSS feed looks and sounds like in the <a href="http://vocalfruits.com/petercasier/pe059d/" target="_blank">Podcast output</a> and <a href="http://vocalfruits.com/petercasier/m456f2/" target="_blank">mobile output</a>.</p>
<h4>The ultimate RSS tools: Yahoo Pipes</h4>
<p>And going geekier. The geekiest of them RSS tools must be <a href="http://pipes.yahoo.com/pipes/" target="_blank">Yahoo Pipes</a>.  Pipes can do just about anything you want with an RSS feed. It can aggregate, edit, manipulate and mix RSS with content at your free will.</p>
<p><img class="aligncenter" src="http://farm4.static.flickr.com/3135/3077286929_76e503ec80_o.jpg" alt="My Yahoo Pipes" width="400" height="333" /></p>
<p>I use Yahoo Pipes a lot for <a href="http://www.humanitariannews.org" target="_blank">Humanitarian News</a>, which aggregates content from 600+ different sites. The technique, I described in <a href="http://www.blogtips.org/rss-reversed-from-feed-to-blog/">an earlier post</a>: Each feed is filtered for lousy formatting, non ASCII characters, mixed with other similar feeds, sorted, truncated and output as a new feed which is imported into my news aggregator.</p>
<p>Yahoo Pipes is for free, supported by an active user forum, but definitively not for those faint of heart: &#8220;super geeks domain!&#8221;</p>
<h4>And more RSS tools: rss-tools.com</h4>
<p>And if you hadn&#8217;t enough yet, check out <a href="http://www.rss-tools.com/" target="_blank">The RSS Tools Directory</a>. If you can&#8217;t find an RSS tool there, it probably does not exist.</p>
<p><img class="aligncenter" title="RSS Tools" src="http://theroadtothehorizon.net/photo/rss%20tools.jpg" alt="" width="410" height="226" /></p>
<p>Icon courtesy of <a href="http://blog.insicdesigns.com/" target="_blank">Insic Designs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogtips.org/free-rss-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing a Blogger template</title>
		<link>http://www.blogtips.org/changing-a-blogger-template/</link>
		<comments>http://www.blogtips.org/changing-a-blogger-template/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 22:29:57 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Geeky Stuff]]></category>
		<category><![CDATA[How to... Stuff]]></category>
		<category><![CDATA[Blogger]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.blogtips.org/?p=539</guid>
		<description><![CDATA[If you are a serious blogger, you will not only write blog posts, but also tweak your blog layout. You will add widgets, fine-tune the layout, add navigation features, icons etc&#8230;
This takes up a significant amount of time and effort. As an example of &#8220;The Life of a Blog Master&#8221;, take a look at change [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>If you are a serious blogger, you will not only write blog posts, but also tweak your blog layout. You will add widgets, fine-tune the layout, add navigation features, icons etc&#8230;</p>
<p>This takes up a significant amount of time and effort. As an example of &#8220;The Life of a Blog Master&#8221;, take a look at <a href="http://www.theroadtothehorizon.org/2007/01/new-stuff-on-road.html" target="_blank">change log</a> for my personal blog, <a href="http://www.theroadtothehorizon.org" target="_blank">The Road To the Horizon</a>.</p>
<p>That blog, running on <a href="http://www.blogger.com" target="_blank">Blogger</a>, is two and a half years old, has about 1,500 blog posts and gets +-15,000 visitors a month, so it is very dear to my heart.</p>
<p>Came a time though, I got tired of the limitations imposed my old Blogger template. A narrow and two column layout had become outdated and I wanted to swap it for something more appealing. That time was <a href="http://www.theroadtothehorizon.org/2009/08/road-is-re-asfalted.html" target="_blank">last weekend</a>.</p>
<div class="wp-caption aligncenter" style="width: 400px">
	<img title="The Roads old template" src="http://theroadtothehorizon.net/photo/the%20road%20in%202009.jpg" alt="The Roads old template" width="400" height="299" />
	<p class="wp-caption-text">The Road&#39;s old template</p>
</div>
<p>From the moment I decided to take &#8220;the big step&#8221;, until the new site was up, I spent about 50 hours, often with cold sweat on my forehead as no matter how well I prepared the migration, things still went wrong.</p>
<p>In this post, I want to share how I swapped my template and what typical problems one should be prepared for.<span id="more-539"></span></p>
<ol>
<li><strong>Find a template:</strong><br />
The first thing to do, of course, is to scout around for a new template. I found <a href="http://www.ourblogtemplates.com/2009/07/blogger-templates-business-templates.html" target="_blank">the Business Template</a>, a free three-column template made by <a href="http://www.ourblogtemplates.com/" target="_blank">OurBlogTemplates</a>:<br/><br/></li>
<div class="wp-caption aligncenter" style="width: 400px">
	<img title="The Business Template" src="http://theroadtothehorizon.net/photo/business%20template%20for%20Blogger.jpg" alt="The Business Template" width="400" height="196" />
	<p class="wp-caption-text">The Business Template</p>
</div>
<li><strong>Test the new template</strong>:<br />
I knew changing a Blogger template was not easy, so I created a test blog on Blogger, uploaded the new template and experimented with its features. I created some dummy posts to check the styling for tables, images, videos, and the widgets, etc..</li>
<li><strong>On a test blog, customize the new template to your liking</strong>:<br />
I tweaked the CSS styling, the column width and imported several scripts I use in my blog. It took me a full evening until the new template did what I had in mind. All of it still on the test blog.<br />
I did not style the site with all details as I thought it would be double work and  might lose some  in the migration from the test site onto the new site anyway, I thought&#8230; In hind sight, that was a good approach.</li>
<li><strong>Migrate the widgets onto the test template: </strong><br />
As Blogger does not support the automatic migration of widgets when you swap templates, I recreated all widgets on my test blog. I manually cut and pasted the content from my &#8220;old&#8221; blog onto the test blog.<br />
There are <a href="http://www.ourblogtemplates.com/2008/09/how-to-install-new-template-without.html" target="_blank">short cuts</a> available so you don&#8217;t have to manually cut and paste all widgets, but that did not work for me: all HTML/Java widgets gave errors. &#8220;Better safe than sorry&#8221;, I thought so old fashioned cut and paste, it was&#8230;<br />
Five hours later, all widgets were copied and properly debugged.I had to reformat some widgets as the  new template&#8217;s side columns and bottom widgets had different widths than on  my old blog.</li>
<li><strong>Make backups:</strong><br />
I made a &#8220;Blogger&#8221; backup of the &#8220;old&#8221; site. A Blogger back only contains the posts on the home page, but it has all the styling and widgets codes as if it were an independent web page. The following days, I used the backup to check &#8220;how my old site looked like&#8221;. I use a developer tool like <a href="http://getfirebug.com/" target="_blank">Firebug </a>to double check some HTML codes and CSS styling.</li>
<li><strong>Copy the CSS styling and customizations of the templates</strong>:<br />
I downloaded the template XML files of the &#8220;old&#8221; site, the test site and the news one. I opened them in three separate windows (that is where a wide screen comes in handy)&#8230;<br />
I copied all CSS styling and Javascript-calls from the test site template onto the new one.<br />
Then I copied all customization from the old site template onto the new one. These included the Google Analytics scripts, all meta tags for the SEO (Search Engine Optimization),  the code for Yahoo SiteExplorer and Google Webmaster (explained in <a href="http://www.blogtips.org/5-things-to-do-after-creating-a-new-blog/">this post</a>), &#8230;. There was plenty of other stuff to transfer. I had forgotten how much I tweaked my template in two and a half years..<br />
I went through the old template line by line to ensure that all bug fixes and oddities I added over the years were properly migrated onto the new template. Preparing the new template took me about three hours.</li>
<li><strong>Upload the new template. And pray</strong>:<br />
Then came moment &#8220;X&#8221;: after a deep breath, I clicked on &#8216;upload&#8217; to pull the newly customized template onto my &#8216;live&#8217; blog. I refreshed the browser view and sure enough, my blog posts appeared. All still without widgets of course, but I had not lost anything.</li>
<li><strong>Re-create the widgets</strong>:<br />
First thing I did on my blog &#8211; now with the new template-, was to create a prominent widget to warn my visitors I was working on the site. Always a good practice, pampering your visitors&#8230; <img src='http://www.blogtips.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Then, one by one, I re-created all widgets and copied their contents from the test blog onto the &#8220;live&#8221; blog.<br />
Another three hours went by.</li>
<li><strong>Debug the obvious formatting problems</strong>:<br />
Now the real work started&#8230; I navigated around the site, as a user would, and soon enough found all kinds of oddities: Some of my customized styling and home made JavaScripts conflicted with the template. It had all kinds of weird effects. Nothing major but nasty enough to give a sloppy impression. Sloppiness is  not a feeling I want my users to have, so I literally worked through the night debugging the new template.</li>
<li><strong>Debug text re-wrapping in the posts</strong>:<br />
A quick nap and three coffees to wake me up later, I took a fresh look at my new site.. It looked nice, but as I browsed through the posts, I found some with miss-formatted tables. As the width of the main post column was slightly wider, I also noticed some posts had odd text wrapping, with plenty of orphans and widows (single lines above and below images, videos and built-in widgets)&#8230;</li>
<li><strong>Ask your visitors for feedback</strong>:<br />
While I was working on the blog, I tweeted the URL of my migrated blog asking for feedback. During the next days. I tweaked the template based on &#8220;the demands from my clients&#8221;..</li>
<li><strong>Go through all of your posts</strong>:<br />
I was surprised about the number of formatting glitches that came to light with the new template. Not because the template was bad, but because many posts relied on  the CSS styling of the old template. Some posts looked pretty darned bad.. I decided to go through all posts, one by one.<br />
And spent about next three evenings doing so&#8230; Of my 1,500 posts, probably I probably re-edited about 200. Some took half an hour, , some of them were ok in two seconds..  Still, this is the part I had totally underestimated when planning this migration.</li>
<li><strong>And while checking the posts, check for dead links and the like</strong>:<br />
I found plenty of oddities while checking all posts. Many of them had nothing to do with the migration itself. Some posts I had not checked for months, or even years, so I found dead links to videos and pictures, which I corrected on the fly. I also discovered that two and a half years ago, as a beginner in blogging, I had used the Blogger&#8217;s WYSIWYG editor a lot. And I can tell you, the HTML code the editor generates is sloppy, making reformatting some posts a pain.</li>
</ol>
<p>But now, about a week later, I have the site where I want it. I still have a stack of posts I need to correct, but they are really minor changes. That can waituntil I scraped together enough energy to do it.</p>
<div class="wp-caption aligncenter" style="width: 400px">
	<img title="The Roads new template, 50 hours later..." src="http://theroadtothehorizon.net/photo/The%20Road's%20new%20template%20ready%20for%20business.jpg" alt="The Roads new template, 50 hours later..." width="400" height="270" />
	<p class="wp-caption-text">The Road&#39;s new template, 50 hours later...</p>
</div>
<h4>Main lessons learned in migrating a Blogger template:</h4>
<ul>
<li>Test your new template on a temporary blog first.</li>
<li>Implement all customization on your test blog to see if it works.</li>
<li>Do the migration work in a weekend, when you have time to concentrate on the job at hand.</li>
<li>Migrate the customization systematically, ensure you don&#8217;t get distracted or you will loose track of what you are doing.</li>
<li>Ask for feedback from your visitors.</li>
<li>If you planned a certain amount of time, rest assured you will spend at least five times as much.</li>
<li>Serious bloggers don&#8217;t use Blogger&#8217;s WYSIWYG editor. It makes reformatting a nightmare.</li>
<li>Consider migrating your Blogger blog onto Wordpress. Migrating a Wordpress template is a breeze. <img src='http://www.blogtips.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.blogtips.org/changing-a-blogger-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
