<?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>Tiger Technologies Blog &#187; Tech Corner</title>
	<atom:link href="http://blog.tigertech.net/category/tech-corner/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tigertech.net</link>
	<description>Behind the scenes at tigertech.net</description>
	<lastBuildDate>Tue, 31 Aug 2010 22:24:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>High load on some servers (resolved)</title>
		<link>http://blog.tigertech.net/posts/issue-2010-08-25-resolved/</link>
		<comments>http://blog.tigertech.net/posts/issue-2010-08-25-resolved/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 03:41:44 +0000</pubDate>
		<dc:creator>Robert Mathews</dc:creator>
				<category><![CDATA[System Status]]></category>
		<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[amy]]></category>
		<category><![CDATA[flexo]]></category>
		<category><![CDATA[leela]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://blog.tigertech.net/?p=1374</guid>
		<description><![CDATA[Three of our Web hosting servers (amy, flexo, and leela) experienced high load earlier today that caused some customers to see &#8220;503 errors&#8221; on their Web sites for a few minutes. This was caused by an upgrade to the eAccelerator PHP caching system that removed all the cached files at once, which doesn&#8217;t normally happen. [...]]]></description>
			<content:encoded><![CDATA[<p>Three of our Web hosting servers (<a href="/posts/which-server/">amy</a>, <a href="/posts/which-server/">flexo</a>, and <a href="/posts/which-server/">leela</a>) experienced high load earlier today that caused some customers to see &#8220;503 errors&#8221; on their Web sites for a few minutes.</p>
<p>This was caused by an upgrade to the eAccelerator PHP caching system that removed all the cached files at once, which doesn&#8217;t normally happen.</p>
<p>The problem has been permanently resolved and will not recur.</p>
<p><span id="more-1374"></span></p>
<p>A technical explanation for why this caused trouble is that the sudden large number of disk writes caused by new eAccelerator files made the Linux kernel decide that disk &#8220;buffer&#8221; memory was so full that all disk writes needed to happen &#8220;synchronously&#8221;.</p>
<p>That caused the MySQL database to start writing temporary &#8220;filesort&#8221; data to the actual RAID array on the server, instead of just storing those files in memory (as Linux usually does for files that exist for less than a few seconds before being deleted). Some of our servers handle hundreds of MySQL queries a second, and the extra disk writing load overwhelmed the &#8220;/tmp&#8221; filesystem, slowing down MySQL dramatically.</p>
<p>We&#8217;ve made three changes to prevent this from happening again:</p>
<ul>
<li>We&#8217;ve modified our Debian eAccelerator package to not remove all the cached files at once during a future upgrade.</li>
<li>We&#8217;ve changed where MySQL stores temporary files. It now uses &#8220;/dev/shm&#8221; shared memory instead of &#8220;/tmp&#8221;. (Ironically, &#8220;/tmp&#8221; used to be shared memory on our servers, but we had to change it to a real disk-based filesystem because it would fill up with large amounts of data if the server wasn&#8217;t restarted for months. That past experience gives us some assurance that this MySQL change won&#8217;t cause problems, though &#8212; and in fact, we&#8217;ve been testing this change on a small number of servers for some time anyway as a general performance improvement.)</li>
<li>On our servers that support it, we&#8217;re now using &#8220;AMD64/Intel 64&#8243; kernels that allow much larger disk memory buffers before the kernel switches to synchronous disk writes, avoiding the problem a different way. Some servers are already using the improved kernel (sadly, not these three servers), and all of our 64-bit-capable servers will be using it after the scheduled maintenance this coming Saturday.</li>
</ul>
<p>We sincerely apologize for this incident. Don&#8217;t hesitate to let us know if you have any questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tigertech.net/posts/issue-2010-08-25-resolved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Avoiding problems with missing images in WordPress</title>
		<link>http://blog.tigertech.net/posts/wordpress-missing-images/</link>
		<comments>http://blog.tigertech.net/posts/wordpress-missing-images/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 22:02:36 +0000</pubDate>
		<dc:creator>Ken</dc:creator>
				<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[Useful Tips]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.tigertech.net/?p=1321</guid>
		<description><![CDATA[WordPress installations handle missing image files very inefficiently by default, running the entire WordPress script to build a custom &#8220;404 Page Not Found&#8221; page rather than simply letting Apache return an immediate default &#8220;404&#8243; response. Running the WordPress script when not necessary is a huge waste of processor time. For example, WordPress might be able [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress installations handle missing image files very inefficiently by default, running the entire WordPress script to build a custom &#8220;404 Page Not Found&#8221; page rather than simply letting Apache return an immediate default &#8220;404&#8243; response. Running the WordPress script when not necessary is a huge waste of processor time. For example, WordPress might be able to only process 8 requests per second for a missing image when WordPress generates a custom &#8220;404&#8243; page, but Apache can return process over 1,000 raw &#8220;404&#8243; responses per second. If your Web site contains references to missing files, this default WordPress behavior can be driving up your CPU usage unnecessarily. We&#8217;ve seen poorly-configured Web sites spend a significant portion of their CPU time processing missing images.</p>
<p><span id="more-1321"></span></p>
<p>There are many sources of missing image file references. Themes and plugins can generate them. Your site may be missing a <a href="http://support.tigertech.net/favicon">favicon.ico</a> file. Some RSS news readers make a lot of requests for files named apple-touch-icon.png and apple-touch-icon-precomposed.png, which most Web sites do not have. Check your Web site&#8217;s analytics report (such as <a href="http://support.tigertech.net/awstats">AWStats</a>) or raw log files to see what image files are missing from your site.</p>
<p>If you&#8217;re a Tiger Technologies customer running WordPress, you already benefit from a global rule we implemented for missing favicon.ico files (as discussed in <a href="/posts/favicon-files-and-wordpress/">a previous blog post</a>). We&#8217;ve also recently updated our WordPress Performance page with extra tips on returning faster &#8220;404&#8243; results for <a href="http://support.tigertech.net/wordpress-performance#7">other missing files such as robots.txt</a> and for <a href="http://support.tigertech.net/wordpress-performance#8">all missing images</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tigertech.net/posts/wordpress-missing-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We&#8217;re ready for WordPress 3.2</title>
		<link>http://blog.tigertech.net/posts/ready-for-wordpress-3-2/</link>
		<comments>http://blog.tigertech.net/posts/ready-for-wordpress-3-2/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 20:39:39 +0000</pubDate>
		<dc:creator>Robert Mathews</dc:creator>
				<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.tigertech.net/?p=1346</guid>
		<description><![CDATA[The WordPress folks recently announced that next year&#8217;s planned WordPress 3.2 will require at least PHP version 5.2 and MySQL database version 5.0.15. If you use WordPress, you might be wondering if this will be a problem. Well, &#8220;Good news, everyone!&#8221; If you use Tiger Technologies to host your WordPress blog, you&#8217;re all set: we [...]]]></description>
			<content:encoded><![CDATA[<p>The WordPress folks recently announced that next year&#8217;s planned <a href="http://wordpress.org/news/2010/07/eol-for-php4-and-mysql4/">WordPress 3.2 will require at least PHP version 5.2 and MySQL database version 5.0.15</a>. If you use WordPress, you might be wondering if this will be a problem.</p>
<p>Well, &#8220;Good news, everyone!&#8221; If you use Tiger Technologies to host your WordPress blog, you&#8217;re all set: we already use later versions of PHP and MySQL than that.</p>
<p><span id="more-1346"></span></p>
<p>WordPress also now provides a <a href="http://wordpress.org/extend/plugins/health-check/">&#8220;health check&#8221; plugin</a> that shows you whether your hosting company is ready. If you run it on one of our servers, you&#8217;ll see:</p>
<div style="margin-left: 2em; margin-right: 2em; background-color: #FFFBCC; border: 1px solid #E6DB55; padding: 1em;">Excellent: Your server is running PHP version 5.2.6-1+lenny9aaa+tigertech1 and MySQL version 5.0.51 which will be great for WordPress 3.2 onward.</div>
<p>(By the way, our versions of PHP and MySQL also include <a href="/posts/security-updates/">security updates from later versions</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tigertech.net/posts/ready-for-wordpress-3-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google, please fix FeedBurner</title>
		<link>http://blog.tigertech.net/posts/google-please-fix-feedburner/</link>
		<comments>http://blog.tigertech.net/posts/google-please-fix-feedburner/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 19:31:54 +0000</pubDate>
		<dc:creator>Robert Mathews</dc:creator>
				<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[feedburner]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.tigertech.net/?p=1299</guid>
		<description><![CDATA[Google FeedBurner is still hammering several of our customer sites with over 5,000 requests for the same URL per hour. We&#8217;ve blogged about this before. We&#8217;ve also reported it on the FeedBurner Help Group and seen similar reports from others going back to 2008. Here&#8217;s the relevant log entries from a site that FeedBurner hit [...]]]></description>
			<content:encoded><![CDATA[<p>Google FeedBurner is still hammering several of our customer sites with over 5,000 requests for the same URL per hour. We&#8217;ve <a href="/posts/wp-super-cache-and-feedburner/">blogged about this before</a>. We&#8217;ve also <a href="http://groups.google.com/group/feedburner-services/browse_thread/thread/295b675d62c04447/ef9ce848578ec206?lnk=gst&#038;q=head">reported it</a> on the FeedBurner Help Group and seen <a href="http://groups.google.com/group/feedburner-services/browse_thread/thread/42c2cdf31f1537a6/2193537e284e064e?lnk=gst&#038;q=head">similar reports from others</a> going back to 2008.</p>
<p><a href="http://www.tigertech.net/patches/feedburner.abuse.log.gz">Here&#8217;s the relevant log entries</a> from a site that FeedBurner hit 5,836 times in one hour this morning (up to 8 times a second). There&#8217;s nothing unusual about the site: it&#8217;s on a single IP address with a single hostname, and the feed doesn&#8217;t change often.</p>
<p>Some sites run a PHP script for every request, so this FeedBurner problem generates high load for no useful purpose at all.</p>
<p>Google: Please fix this. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tigertech.net/posts/google-please-fix-feedburner/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Security update for &#8220;wget&#8221;</title>
		<link>http://blog.tigertech.net/posts/wget-security-update/</link>
		<comments>http://blog.tigertech.net/posts/wget-security-update/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 21:30:49 +0000</pubDate>
		<dc:creator>Robert Mathews</dc:creator>
				<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.tigertech.net/?p=1280</guid>
		<description><![CDATA[One of the tools we offer our customers is the &#8220;wget&#8221; program, which can be used to fetch files from other Web or FTP servers. It turns out that wget has a security bug that needs to be avoided. As a result, the behavior of wget has changed in some situations. If you use wget [...]]]></description>
			<content:encoded><![CDATA[<p>One of the tools we offer our customers is the &#8220;<a href="http://www.gnu.org/software/wget/">wget</a>&#8221; program, which can be used to fetch files from other Web or FTP servers.</p>
<p>It turns out that <a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-2252">wget has a security bug</a> that needs to be avoided. As a result, the behavior of wget has changed in some situations. If you use wget (most of our customers don&#8217;t), you should be aware of this change.</p>
<p><span id="more-1280"></span></p>
<h3>The problem</h3>
<p>If wget requests a file with an innocuous name from another server, but that server replies with a &#8220;redirect&#8221; to a file with a malicious name, wget will save the file with the malicious name instead.</p>
<p>As an example, imagine you run this command and expect wget to save a file named &#8220;feed.rss&#8221; at the top level of your site:</p>
<p><code>$ wget http://example.com/feed.rss</code></p>
<p>However, the remote server redirects the original request to a malicious file at:</p>
<p><code>$ wget http://example.com/index.html</code></p>
<p>In that situation, wget will actually save the file as &#8220;index.html&#8221; on your site, potentially changing your home page to something awful. <a href="http://www.openwall.com/lists/oss-security/2010/05/18/13">More complex attacks</a> that actually run malicious code are also possible.</p>
<h3>The solution</h3>
<p>A <a href="http://www.debian.org/security/2010/dsa-2088">wget security update</a> that we installed today changes how it handles a redirect. By default, it now saves the file under the original name (&#8220;feed.rss&#8221; in the example above) instead of a new name the server provides.</p>
<p>This change will not affect most people who use wget. However, if you do use wget to request URLs that redirect to a new name, and you rely on wget saving the file using that new name despite the security risks, you&#8217;ll need to start using wget&#8217;s &#8220;<kbd>--use-server-file-name</kbd>&#8221; option to keep it working the way you expect.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tigertech.net/posts/wget-security-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Even better performance from WP Super Cache</title>
		<link>http://blog.tigertech.net/posts/even-better-performance-from-wp-super-cache/</link>
		<comments>http://blog.tigertech.net/posts/even-better-performance-from-wp-super-cache/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 04:12:05 +0000</pubDate>
		<dc:creator>Robert Mathews</dc:creator>
				<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[Useful Tips]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[WP Super Cache]]></category>

		<guid isPermaLink="false">http://blog.tigertech.net/?p=1237</guid>
		<description><![CDATA[In a previous post, we talked about how increasing the WP Super Cache &#8220;Expire time&#8221; from 1 hour to 48 hours can help the performance of WordPress blogs. Here&#8217;s another tip that can help dramatically: Remove &#8220;bot&#8221;, &#8220;ia_archive&#8221;, &#8220;slurp&#8221;, &#8220;crawl&#8221;, &#8220;spider&#8221; and &#8220;Yandex&#8221; from the Rejected User Agents box in the WP Super Cache plugin [...]]]></description>
			<content:encoded><![CDATA[<p>In a <a href="/posts/better-performance-from-wp-super-cache/">previous post</a>, we talked about how increasing the WP Super Cache &#8220;Expire time&#8221; from 1 hour to 48 hours can help the performance of WordPress blogs.</p>
<p>Here&#8217;s another tip that can help dramatically: Remove &#8220;bot&#8221;, &#8220;ia_archive&#8221;, &#8220;slurp&#8221;, &#8220;crawl&#8221;, &#8220;spider&#8221; and &#8220;Yandex&#8221; from the <strong>Rejected User Agents</strong> box in the WP Super Cache plugin settings. (In most cases, this will leave the box completely empty.)</p>
<p><span id="more-1237"></span></p>
<p>Those &#8220;Rejected User Agents&#8221; prevent cached pages from being created when a search engine &#8220;visits&#8221; your site. The FAQ says this is because there&#8217;s no point creating a cached file for a page that isn&#8217;t popular, which may be true for sites that don&#8217;t have many posts and aren&#8217;t that busy. The author of the plugin is wisely being conservative to avoid problems on hosting companies that use &#8220;NFS&#8221; disks where saving a cached file can be slow.</p>
<p>We don&#8217;t use NFS like that, though. And on a busy site with lots of archived posts, there&#8217;s a very good chance that a page that&#8217;s indexed by a search engine will be reindexed or viewed several times within the next couple of days. Allowing these pages to be cached can make a big difference. Besides, there&#8217;s no good reason <i>not</i> to cache a copy of the page, since you should be sending the same page to search engines as you do to actual users.</p>
<p>We removed those &#8220;Rejected User Agents&#8221; on a busy site with several thousand archived posts, with the &#8220;Expire time&#8221; set to 48 hours (172800 seconds) as we recommend, and here&#8217;s what happened to that site&#8217;s CPU usage:</p>
<div style="text-align: center;"><img src="http://www.tigertech.net/images/blog/2010-06-16-cpu-load.png" alt="CPU load after WP Super Cache change" width="620" height="180" /></div>
<p>As you can see, the average load dropped by almost half as more and more pages were cached. That&#8217;s another way of saying that the average page loading speed almost doubled. Those are pretty good results for a change that took just a few seconds to make.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tigertech.net/posts/even-better-performance-from-wp-super-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protect your WordPress login</title>
		<link>http://blog.tigertech.net/posts/protect-your-wordpress-login/</link>
		<comments>http://blog.tigertech.net/posts/protect-your-wordpress-login/#comments</comments>
		<pubDate>Thu, 27 May 2010 22:39:58 +0000</pubDate>
		<dc:creator>Ken</dc:creator>
				<category><![CDATA[Industry Observations]]></category>
		<category><![CDATA[Tales From the Support Team]]></category>
		<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[Useful Tips]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.tigertech.net/?p=1190</guid>
		<description><![CDATA[Do you login to your WordPress blog securely? Are your username and password encrypted so that &#8220;hackers&#8221; can&#8217;t steal them and then break into your blog? (Probably not!) By default, each WordPress blog is configured to send the login username and password as plain (unencrypted) text. If a hacker can see what you are sending [...]]]></description>
			<content:encoded><![CDATA[<p>Do you login to your <a href="http://support.tigertech.net/wordpress">WordPress</a> blog securely? Are your username and password encrypted so that &#8220;hackers&#8221; can&#8217;t steal them and then break into your blog? (Probably not!)</p>
<p>By default, each WordPress blog is configured to send the login username and password as plain (unencrypted) text. If a hacker can see what you are sending during your login, they can easily steal your username and password. This can happen if you have a virus installed on your computer. It can also happen if your computer is virus-free but connects via WiFi. If your main computer uses a wireless connection, or if you or other users of your blog ever login with their laptops &#8212; blogging from a coffee shop, anyone? &#8212; remember that these connections can be insecure, and could be susceptible to revealing your password.</p>
<p>You can protect your blog by installing an &#8220;SSL certificate&#8221; and configuring WordPress to require secure logins. Your browser will then encrypt your username and password so that no one can intercept them.</p>
<p><span id="more-1190"></span></p>
<p>Traditionally, only online stores used SSL certificates because they were very expensive. But SSL certificate prices have dropped quite a bit recently, and they&#8217;re now low enough that we think SSL certificates should be widely used to protect all logins and other sensitive data.</p>
<p>If you are a Tiger Technologies customer, you can <a href="http://support.tigertech.net/ssl">get an SSL certificate</a> for a great price. (One type of certificate, a &#8220;self-signed certificate&#8221;, is even free if you&#8217;re already on our Gold or Platinum hosting plans.) If you&#8217;re not a Tiger Technologies customer, you can <a href="http://www.google.com/search?q=SSL+certificate">search for companies selling SSL certificates</a> or <a href="http://www.google.com/search?q=free+self-signed+certificate">search for free self-signed certificates</a>.</p>
<h3>Configuring WordPress</h3>
<p>Once you have an SSL certificate installed on your site, it&#8217;s easy to configure WordPress to use secure logins. Simply add this line anywhere to your wp-config.php file (after the opening “&lt;&#63;php” line):</p>
<p><code>define(&#39;FORCE_SSL_ADMIN&#39;, true);</code></p>
<p>This will ensure that your username and password are submitted to WordPress securely; all of your subsequent work (creating posts, etc) will be secure as well. You&#8217;ll see your Web browser&#8217;s &#8220;padlock&#8221; icon when you are using a secure connection. The WordPress &#8220;<a href="http://codex.wordpress.org/Administration_Over_SSL">Administration Over SSL</a>&#8221; page has more details.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tigertech.net/posts/protect-your-wordpress-login/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>WordPress security thoughts</title>
		<link>http://blog.tigertech.net/posts/wordpress-security-thoughts/</link>
		<comments>http://blog.tigertech.net/posts/wordpress-security-thoughts/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 20:42:14 +0000</pubDate>
		<dc:creator>Robert Mathews</dc:creator>
				<category><![CDATA[Tales From the Support Team]]></category>
		<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[Useful Tips]]></category>
		<category><![CDATA[mod_security]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.tigertech.net/?p=1115</guid>
		<description><![CDATA[In the last few days, there&#8217;s been a lot of talk on the Internet about the security of WordPress blog software. Several shared hosting companies apparently allow customers to view the text of other customer&#8217;s files by default, and that allows malicious customers to discover the database password of another site (from the &#8220;wp-config.php&#8221; file) [...]]]></description>
			<content:encoded><![CDATA[<p>In the last few days, there&#8217;s been a <a href="http://www.thetechherald.com/article.php/201015/5493/WordPress-driven-sites-compromised-due-to-permission-settings">lot of talk</a> on the Internet about the security of <a href="http://support.tigertech.net/wordpress">WordPress</a> blog software.</p>
<p>Several shared hosting companies apparently allow customers to view the text of other customer&#8217;s files by default, and that allows malicious customers to discover the database password of another site (from the &#8220;wp-config.php&#8221; file) and alter the site.</p>
<p><span id="more-1115"></span></p>
<p>Some security researchers think this is a WordPress flaw, but we agree with the WordPress folks that <a href="http://wordpress.org/development/2010/04/file-permissions/">that&#8217;s nonsense</a>. The real problem is that these hosting companies are allowing customers to view each other&#8217;s files, which shows a reckless disregard for security.</p>
<p>For the record, this kind of attack is impossible on our servers. We prevent customers from viewing each other&#8217;s files. In particular, we use <a href="http://httpd.apache.org/docs/2.2/suexec.html">suEXEC</a> to run each user&#8217;s scripts under a separate Unix user ID, and we ensure that your files are protected from other users at the file system level.</p>
<p>In fact, we go a step further than even most reasonably secure companies: we protect your files even if you change every possible file and directory to be world-writable (<a href="http://support.tigertech.net/world-writable">mode 777</a>), using an additional layer of Linux &#8220;access control list&#8221; rules on your top-level directories. We also automatically reset the bad directory permissions for you, just to be sure there are always two levels of protection.</p>
<p>So you don&#8217;t need to worry about this kind of attack; &#8220;we&#8217;ve got your back&#8221;.</p>
<h3>A different attack on wp-config.php</h3>
<p>Separately and coincidentally, our security systems detected a different type of attack on a &#8220;wp-config.php&#8221; file today. Some &#8220;hackers&#8221; on the Internet are trying to load files named &#8220;wp-config.php~&#8221; with a tilde character at the end. In most cases, that file won&#8217;t exist, but if you&#8217;ve edited your &#8220;wp-config.php&#8221; file with some text editors, it creates a &#8220;wp-config.php~&#8221; version as a backup copy.</p>
<p>This is an interesting attack. Of course, it&#8217;s not possible to load this file in a Web browser and see the source:</p>
<p><code>http://example.com/wp-config.php</code></p>
<p>However, it <strong>is</strong> possible to see the source of this file if it exists:</p>
<p><code>http://example.com/wp-config.php~</code></p>
<p>That&#8217;s because the server doesn&#8217;t recognize that the &#8220;.php~&#8221; file contains PHP code, so it shows the visitor the contents (source) of the file, with disastrous results.</p>
<p>We&#8217;ve fixed this potential attack by blocking all requests for filenames ending in &#8220;.php~&#8221; on our servers, since it appears that nobody is using this legitimately.</p>
<p>If you run your own Web servers, this simple <a href="http://www.modsecurity.org/">mod_security</a> rule will do the trick:</p>
<p><code>SecRule REQUEST_FILENAME "\.php~$" "msg:'PHP file backup exploit',deny,status:412,auditlog"</code></p>
<p>(Just so it&#8217;s clear, we&#8217;ve already done this for our customers; that rule is mentioned in the hope that it might be useful to someone else. We also <a href="http://wordpress.org/support/topic/387895">mentioned this issue on the WordPress support forums</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tigertech.net/posts/wordpress-security-thoughts/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>We&#8217;re now using the dbl.spamhaus.org blocklist</title>
		<link>http://blog.tigertech.net/posts/dbl-spamhaus-org-blocklist/</link>
		<comments>http://blog.tigertech.net/posts/dbl-spamhaus-org-blocklist/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 17:57:16 +0000</pubDate>
		<dc:creator>Robert Mathews</dc:creator>
				<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://blog.tigertech.net/?p=1100</guid>
		<description><![CDATA[We recently added the Spamhaus Domain Block List (dbl.spamhaus.org) to our spam filters. The Domain Block List is an extremely reliable list of domain names that are used only in spam. Blocking most mail that advertises these domain names improves our spam filtering: we&#8217;re now blocking about 1% more spam as a result. That may [...]]]></description>
			<content:encoded><![CDATA[<p>We recently added the <a href="http://www.spamhaus.org/dbl/">Spamhaus Domain Block List (dbl.spamhaus.org)</a> to our <a href="http://support.tigertech.net/spam-filter">spam filters</a>.</p>
<p>The Domain Block List is an extremely reliable list of domain names that are used only in spam. Blocking most mail that advertises these domain names improves our spam filtering: we&#8217;re now blocking about 1% more spam as a result.</p>
<p>That may not sound like much, but it represents about 150 more blocked spam messages per year for each customer. (We block an average of over 15,000 spam messages per year per customer.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tigertech.net/posts/dbl-spamhaus-org-blocklist/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Preventing runaway MySQL queries</title>
		<link>http://blog.tigertech.net/posts/preventing-mysql-runaway-queries/</link>
		<comments>http://blog.tigertech.net/posts/preventing-mysql-runaway-queries/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 00:48:19 +0000</pubDate>
		<dc:creator>Robert Mathews</dc:creator>
				<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://blog.tigertech.net/?p=1089</guid>
		<description><![CDATA[If you use a MySQL database with large tables, it&#8217;s possible to accidentally run queries that try to sort millions of rows (usually through some kind of programming error, such as an &#8220;unconstrained table join&#8221;). Those runaway queries can slow down the MySQL server for many minutes on end, causing performance problems. To prevent the [...]]]></description>
			<content:encoded><![CDATA[<p>If you use a <a href="http://support.tigertech.net/mysql">MySQL database</a> with large tables, it&#8217;s possible to accidentally run queries that try to sort millions of rows (usually through some kind of programming error, such as an &#8220;unconstrained table join&#8221;).</p>
<p>Those runaway queries can slow down the MySQL server for many minutes on end, causing performance problems.</p>
<p>To prevent the worst of that, we&#8217;ve set the <a href=" http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_max_join_size">max_join_size</a> setting to 1,000,000 on our MySQL servers.</p>
<p><span id="more-1089"></span></p>
<p>This shouldn&#8217;t affect any normal queries, but queries that attempt to sort more than a million rows will now return this error:</p>
<p><tt>ERROR 1104 (42000): The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay</tt></p>
<p>If you have any questions, please <a href="http://support.tigertech.net/contact">contact our support staff</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tigertech.net/posts/preventing-mysql-runaway-queries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.373 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-09-02 16:24:29 -->
