<?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>Wordpress Security &#187; Wordpress Wizardry</title>
	<atom:link href="http://wpsecure.org/category/wordpress-wizardry/feed/" rel="self" type="application/rss+xml" />
	<link>http://wpsecure.org</link>
	<description>How to Secure Your WordPress Blog</description>
	<lastBuildDate>Mon, 05 Oct 2009 05:47:50 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Other WordPress Tricks</title>
		<link>http://wpsecure.org/other-wordpress-tricks/</link>
		<comments>http://wpsecure.org/other-wordpress-tricks/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 22:47:29 +0000</pubDate>
		<dc:creator>David Turnbull</dc:creator>
				<category><![CDATA[Wordpress Wizardry]]></category>

		<guid isPermaLink="false">http://wpsecure.org/?p=98</guid>
		<description><![CDATA[Perhaps in the future I&#8217;ll expand on the topics below, but for the sake of brevity and simplicity here are some easy to implement Wordpress security tricks.

Delete the xmlrpc.php file from your server, or at the very least make sure its disabled (do that by going to Writing under Settings in the administration area). If [...]]]></description>
			<content:encoded><![CDATA[<p>Perhaps in the future I&#8217;ll expand on the topics below, but for the sake of brevity and simplicity here are some easy to implement Wordpress security tricks.</p>
<ul>
<li><strong>Delete the xmlrpc.php file from your server</strong>, or at the very least make sure its disabled (do that by going to Writing under Settings in the administration area). If you need the file (it’s require for desktop blogging tools) then at least rename the file to something unique.</li>
<li><strong>Disable user registration</strong> if you don&#8217;t require the functionality. Go to the General page under Settings and verify that “Anyone can register” is not checked.</li>
<li><strong>Rename your /wp-admin folder to something unique</strong>, and make sure there are no references to the renamed version in your robots.txt or .htaccess file.</li>
</ul>
<h3  class="related_post_title">You might also want to read...</h3><ul class="related_post"><li><a href="http://wpsecure.org/blogging-from-public-computers/" title="Blogging from Public Computers">Blogging from Public Computers</a></li><li><a href="http://wpsecure.org/how-to-protect-wp-admin/" title="How to Protect /wp-admin">How to Protect /wp-admin</a></li><li><a href="http://wpsecure.org/deny-access-to-readme-html/" title="Deny Access to readme.html">Deny Access to readme.html</a></li><li><a href="http://wpsecure.org/perishable-3g-blacklist/" title="Perishable 3G Blacklist">Perishable 3G Blacklist</a></li><li><a href="http://wpsecure.org/the-basics-of-blog-security/" title="The Basics of Blog Security">The Basics of Blog Security</a></li><li><a href="http://wpsecure.org/wp-db-backup/" title="WP DB Backup">WP DB Backup</a></li><li><a href="http://wpsecure.org/email-backups/" title="Email Backups">Email Backups</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wpsecure.org/other-wordpress-tricks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Move wp-config.php</title>
		<link>http://wpsecure.org/move-wp-config-php/</link>
		<comments>http://wpsecure.org/move-wp-config-php/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 13:13:29 +0000</pubDate>
		<dc:creator>David Turnbull</dc:creator>
				<category><![CDATA[Wordpress Wizardry]]></category>

		<guid isPermaLink="false">http://wpsecure.org/?p=84</guid>
		<description><![CDATA[By default wp-config.php, which contains all your most sensitive data, is stored in the top level directory of your blog. What few people know however is that you can actually move this file to the directory above its default location.
If WordPress is installed in the /public_html directory this allows you to move the file completely [...]]]></description>
			<content:encoded><![CDATA[<p>By default wp-config.php, which contains all your most sensitive data, is stored in the top level directory of your blog. What few people know however is that you can actually move this file to the directory above its default location.</p>
<p>If WordPress is installed in the /public_html directory this allows you to move the file completely out of public access.</p>
<h3  class="related_post_title">You might also want to read...</h3><ul class="related_post"><li><a href="http://wpsecure.org/login-lockdown/" title="Login Lockdown">Login Lockdown</a></li><li><a href="http://wpsecure.org/hide-login-errors/" title="Hide Login Errors">Hide Login Errors</a></li><li><a href="http://wpsecure.org/cookie-encryption/" title="Cookie Encryption">Cookie Encryption</a></li><li><a href="http://wpsecure.org/web-host-backups/" title="Web Host Backups">Web Host Backups</a></li><li><a href="http://wpsecure.org/plugin-wp-spamfree/" title="Plugin: WP-SpamFree">Plugin: WP-SpamFree</a></li><li><a href="http://wpsecure.org/stealth-login/" title="Stealth Login">Stealth Login</a></li><li><a href="http://wpsecure.org/use-an-account-with-limited-access/" title="Use an Account with Limited Access">Use an Account with Limited Access</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wpsecure.org/move-wp-config-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cookie Encryption</title>
		<link>http://wpsecure.org/cookie-encryption/</link>
		<comments>http://wpsecure.org/cookie-encryption/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 12:20:05 +0000</pubDate>
		<dc:creator>David Turnbull</dc:creator>
				<category><![CDATA[Wordpress Wizardry]]></category>

		<guid isPermaLink="false">http://wpsecure.org/?p=44</guid>
		<description><![CDATA[Cookie hijacking is a security threat for your blog, but because of my inability to explain such complex topics simply, here&#8217;s an explanation from Wikipedia:
&#8220;During normal operation cookies are sent back and forth between a server (or a group of servers in the same domain) and the computer of the browsing user. Since cookies may [...]]]></description>
			<content:encoded><![CDATA[<p>Cookie hijacking is a security threat for your blog, but because of my inability to explain such complex topics simply, here&#8217;s an explanation from Wikipedia:</p>
<blockquote><p>&#8220;During normal operation cookies are sent back and forth between a server (or a group of servers in the same domain) and the computer of the browsing user. Since cookies may contain sensitive information (user name, a token used for authentication, etc.), their values should not be accessible to other computers. Cookie theft is the act of intercepting cookies by an unauthorized party.</p>
<p>Cookies can be stolen via packet sniffing in an attack called session hijacking. Traffic on a network can be intercepted and read by computers on the network other than its sender and its receiver (particularly on unencrypted public Wi-Fi networks). This traffic includes cookies sent on ordinary unencrypted http sessions. Where network traffic is not encrypted, malicious users can therefore read the communications of other users on the network, including their cookies, using programs called packet sniffers.&#8221;</p></blockquote>
<p>Oddly enough, this complex topic has a simple solution.</p>
<p>Open up your wp-config.php file, and scroll down to this code:</p>
<blockquote><p>define(&#8217;AUTH_KEY&#8217;, &#8216;put your unique phrase here&#8217;);<br />
define(&#8217;SECURE_AUTH_KEY&#8217;, &#8216;put your unique phrase here&#8217;);<br />
define(&#8217;LOGGED_IN_KEY&#8217;, &#8216;put your unique phrase here&#8217;);<br />
define(&#8217;NONCE_KEY&#8217;, &#8216;put your unique phrase here&#8217;);</p></blockquote>
<p>Now, go over to <a href="http://api.wordpress.org/secret-key/1.1/">http://api.wordpress.org/secret-key/1.1/</a> and copy the randomly generated output. Replace the original 4 lines of code with this newly copied set.</p>
<p>And that&#8217;s it! Now your cookies are encrypted, and thus protected against cookie hijacking. Nice and simple.</p>
<h3  class="related_post_title">You might also want to read...</h3><ul class="related_post"><li><a href="http://wpsecure.org/what-is-the-secure-wordpress-project/" title="What is the Secure WordPress project?">What is the Secure WordPress project?</a></li><li><a href="http://wpsecure.org/wordpress-firewall/" title="WordPress Firewall">WordPress Firewall</a></li><li><a href="http://wpsecure.org/antivirus-for-wordpress/" title="Antivirus for WordPress">Antivirus for WordPress</a></li><li><a href="http://wpsecure.org/other-wordpress-tricks/" title="Other WordPress Tricks">Other WordPress Tricks</a></li><li><a href="http://wpsecure.org/secure-wordpress/" title="Secure WordPress">Secure WordPress</a></li><li><a href="http://wpsecure.org/login-lockdown/" title="Login Lockdown">Login Lockdown</a></li><li><a href="http://wpsecure.org/use-an-account-with-limited-access/" title="Use an Account with Limited Access">Use an Account with Limited Access</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wpsecure.org/cookie-encryption/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hide Login Errors</title>
		<link>http://wpsecure.org/hide-login-errors/</link>
		<comments>http://wpsecure.org/hide-login-errors/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 12:14:24 +0000</pubDate>
		<dc:creator>David Turnbull</dc:creator>
				<category><![CDATA[Wordpress Wizardry]]></category>

		<guid isPermaLink="false">http://wpsecure.org/?p=40</guid>
		<description><![CDATA[By default if you type your username or password incorrectly when trying to login, Wordpress lets you know what mistake you’ve made. This can provide a hacker with confirmation that they know one half of the login equation.
Edit the functions.php file in your /wp-content/themes folder and add this code to prevent these errors from showing [...]]]></description>
			<content:encoded><![CDATA[<p>By default if you type your username or password incorrectly when trying to login, Wordpress lets you know what mistake you’ve made. This can provide a hacker with confirmation that they know one half of the login equation.</p>
<p>Edit the functions.php file in your /wp-content/themes folder and add this code to prevent these errors from showing up:</p>
<blockquote><p>&lt;?php add_filter(&#8217;login_errors&#8217;,create_function(&#8217;$a&#8217;, &#8220;return null;&#8221;)); ?&gt;</p></blockquote>
<p>Note: This can be done automatically with the <a href="http://wpsecure.org/login-lockdown/">Login Lockdown plugin</a>.</p>
<h3  class="related_post_title">You might also want to read...</h3><ul class="related_post"><li><a href="http://wpsecure.org/how-to-secure-wordpress-a-quick-start-guide/" title="How to Secure WordPress, a Quick Start Guide">How to Secure WordPress, a Quick Start Guide</a></li><li><a href="http://wpsecure.org/hide-the-version-number/" title="Hide the Version Number">Hide the Version Number</a></li><li><a href="http://wpsecure.org/deny-access-to-wp-config-php/" title="Deny Access to wp-config.php">Deny Access to wp-config.php</a></li><li><a href="http://wpsecure.org/move-wp-config-php/" title="Move wp-config.php">Move wp-config.php</a></li><li><a href="http://wpsecure.org/disable-comments-on-older-posts/" title="Disable Comments on Older Posts">Disable Comments on Older Posts</a></li><li><a href="http://wpsecure.org/one-click-plugin-updater/" title="One Click Plugin Updater">One Click Plugin Updater</a></li><li><a href="http://wpsecure.org/perishable-3g-blacklist/" title="Perishable 3G Blacklist">Perishable 3G Blacklist</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wpsecure.org/hide-login-errors/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Updating WordPress</title>
		<link>http://wpsecure.org/updating-wordpress/</link>
		<comments>http://wpsecure.org/updating-wordpress/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 12:12:28 +0000</pubDate>
		<dc:creator>David Turnbull</dc:creator>
				<category><![CDATA[Wordpress Wizardry]]></category>

		<guid isPermaLink="false">http://wpsecure.org/?p=35</guid>
		<description><![CDATA[Wordpress has a very fast development cycle, and often there are 2 or more major updates each year, along with minor updates spread in between these. Something you need to remember is:
Major updates can be huge security risks.
When upgrading Wordpress from, say Wordpress 2.7 to 2.8 a large amount of changes in the software have [...]]]></description>
			<content:encoded><![CDATA[<p>Wordpress has a very fast development cycle, and often there are 2 or more major updates each year, along with minor updates spread in between these. Something you need to remember is:</p>
<p><strong>Major updates can be huge security risks</strong>.</p>
<p>When upgrading Wordpress from, say Wordpress 2.7 to 2.8 a large amount of changes in the software have been made. These changes generally bring with them new parts in the code that can be exploited.</p>
<p>Luckily, there is a simple solution. If there is a major update:</p>
<p><strong>Wait</strong>.</p>
<p>Wait for 1-2 minor updates to be released, and then upgrade to that version. Security becomes the foremost concern for developers after a major update, so the first couple of minor updates following will eliminate most of the exploits that are found.</p>
<p>Granted, I&#8217;m quite the hypocrite as I write this because I&#8217;m often too impatient and will upgrade my Wordpress straight away just to play around with the new features. But it&#8217;s important to understand the risk you&#8217;re introducing.</p>
<p>Something I should do is setup a separate installation of Wordpress, only used for playing around with new features, and then upgrade the original copy of Wordpress at a safe time. That&#8217;d be the smart way to approach it.</p>
<h3  class="related_post_title">You might also want to read...</h3><ul class="related_post"><li><a href="http://wpsecure.org/what-is-the-secure-wordpress-project/" title="What is the Secure WordPress project?">What is the Secure WordPress project?</a></li><li><a href="http://wpsecure.org/antivirus-for-wordpress/" title="Antivirus for WordPress">Antivirus for WordPress</a></li><li><a href="http://wpsecure.org/one-click-plugin-updater/" title="One Click Plugin Updater">One Click Plugin Updater</a></li><li><a href="http://wpsecure.org/email-backups/" title="Email Backups">Email Backups</a></li><li><a href="http://wpsecure.org/hide-login-errors/" title="Hide Login Errors">Hide Login Errors</a></li><li><a href="http://wpsecure.org/managing-passwords-with-software/" title="Managing Passwords with Software">Managing Passwords with Software</a></li><li><a href="http://wpsecure.org/strong-passwords/" title="Strong Passwords">Strong Passwords</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wpsecure.org/updating-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hide the Version Number</title>
		<link>http://wpsecure.org/hide-the-version-number/</link>
		<comments>http://wpsecure.org/hide-the-version-number/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 12:10:01 +0000</pubDate>
		<dc:creator>David Turnbull</dc:creator>
				<category><![CDATA[Wordpress Wizardry]]></category>

		<guid isPermaLink="false">http://wpsecure.org/?p=31</guid>
		<description><![CDATA[The version number of your Wordpress installation can tell a hacker a lot of information. Different version numbers have different exploits so making the information public effectively speeds up the process of someone getting into your system.
Don&#8217;t help them by eliminating some of the work.
Place the follow code in your functions.php, which should be in [...]]]></description>
			<content:encoded><![CDATA[<p>The version number of your Wordpress installation can tell a hacker a lot of information. Different version numbers have different exploits so making the information public effectively speeds up the process of someone getting into your system.</p>
<p>Don&#8217;t help them by eliminating some of the work.</p>
<p>Place the follow code in your functions.php, which should be in your current themes folder. If the file isn’t there, create it.</p>
<blockquote><p>&lt;?php remove_action(&#8217;wp_head&#8217;, &#8216;wp_generator&#8217;); ?&gt;</p></blockquote>
<p>This code was found at: http://gist.github.com/167926</p>
<h3  class="related_post_title">You might also want to read...</h3><ul class="related_post"><li><a href="http://wpsecure.org/delete-the-default-administrator/" title="Delete the Default Administrator">Delete the Default Administrator</a></li><li><a href="http://wpsecure.org/wp-db-backup/" title="WP DB Backup">WP DB Backup</a></li><li><a href="http://wpsecure.org/how-to-use-this-guide/" title="How to Use this Guide">How to Use this Guide</a></li><li><a href="http://wpsecure.org/use-an-account-with-limited-access/" title="Use an Account with Limited Access">Use an Account with Limited Access</a></li><li><a href="http://wpsecure.org/blogging-from-public-computers/" title="Blogging from Public Computers">Blogging from Public Computers</a></li><li><a href="http://wpsecure.org/antivirus-for-wordpress/" title="Antivirus for WordPress">Antivirus for WordPress</a></li><li><a href="http://wpsecure.org/what-is-the-secure-wordpress-project/" title="What is the Secure WordPress project?">What is the Secure WordPress project?</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wpsecure.org/hide-the-version-number/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->