<?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>Woody Hayday &#124; Blog &#187; Wordpress</title>
	<atom:link href="http://blog.woodylabs.com/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.woodylabs.com</link>
	<description>An exploration of life, technology and writing</description>
	<lastBuildDate>Wed, 25 Jan 2012 07:08:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Remove unwanted eBay strings from A2P [Auction2post] posts with Automated Editor</title>
		<link>http://blog.woodylabs.com/2011/08/remove-unwanted-ebay-strings-from-a2p-auction2post-posts-with-automated-editor/</link>
		<comments>http://blog.woodylabs.com/2011/08/remove-unwanted-ebay-strings-from-a2p-auction2post-posts-with-automated-editor/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 04:58:32 +0000</pubDate>
		<dc:creator>Woody</dc:creator>
				<category><![CDATA[Affiliate Marketing]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Search Engine Optimisation]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Auction2Post]]></category>
		<category><![CDATA[Automated Editor]]></category>

		<guid isPermaLink="false">http://blog.woodylabs.com/?p=718</guid>
		<description><![CDATA[Free rules file with this post! Do you use Auction2Post [A2P]? If you don&#8217;t its a wordpress plugin which automatically implants listings from ebay as wordpress posts, including affiliate links through the ebay partner network from which you earn a commission. Its quite useful. Read my post about it here. Anyhow if you don&#8217;t use the [...]<hr /><a href="http://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
			<content:encoded><![CDATA[<h3 style="text-align: right;">Free rules file with this post!</h3>
<p>Do you use <a href="http://blog.woodylabs.com/2009/10/auction-2-post/">Auction2Post</a> [A2P]? If you don&#8217;t its a wordpress plugin which automatically implants listings from ebay as wordpress posts, including affiliate links through the ebay partner network from which you earn a commission. Its quite useful. Read my post about it <a href="http://blog.woodylabs.com/2009/10/auction-2-post/">here</a>. Anyhow if you don&#8217;t use the plugin you can pretty much skip this post, unless you use a similar thing which is generating all kinds of nasty strings you don&#8217;t want in your posts <img src='http://blog.woodylabs.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>This post will show you how to sanitise your auction2post posts for annoying (and contract breaking) ebay auction strings, it even has 125 rules already in a file for import!</p>
<h3>The problem</h3>
<p>Auction2Post is great in lots of respects, its well written and does a prescribed job. Where it caused irritation for me is arguably after its done its job, after the wordpress plugin had created its posts. You see you can create posts via templates, which is great, it allows enough customisation for most, however I wanted a bit of text processing as often you are left with irritating auction footers and garbage text which make the user hit back or close at a displeasing rate (some of these ebay strings might actually make your Auction 2 posts sites break ebay partner network terms of service, its really worth sanitising your posts as I describe below!)</p>
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;">
<strong>For Example:</strong></p>
<p>My EBAY User ID: yah00002009</p>
<p>welcome to Our ebay Store shop</p>
<p>IF YOU ARE NEW TO EBAY OR DO NOT HAVE A PAY PAL ACCOUNT PLEASE CONTACT ME SO WE CAN HELP MAKE ARRANGEMENTS WITH YOU</p>
</div>
<h3>The Solution</h3>
<p>This problem with Auction 2 Post and wordpress is one of the reasons <a href="http://www.automatededitor.com"  target="_blank">Automated Editor</a> was born, to give a bit more freedom in text processing, wordpress filters are great but I don&#8217;t think filtering hundreds of ebay phrases like that is effective.</p>
<p><span id="more-718"></span></p>
<p>If you want to cleanse your Auction2post posts of dirty ebay auction footers and the like here is how I currently do it:</p>
<ol>
<li>Install Automated Editor plugin on the blog in question. (Get it <a href="http://www.automatededitor.com/launch-offer-save-over-50-percent/" target="_blank">here</a> and install like a normal plugin.)</li>
<li>Go to the plugin (Auto Editor on its plugin menu) and read the disclaimer (big red box) and THEN accept it.</li>
<li>Download the rules file I have created (Get it at the bottom of this post) and unzip it somewhere.
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><img class="alignnone size-full wp-image-726" title="ebay-string-replace-rules-file" src="http://blog.woodylabs.com/wp-content/uploads/2011/08/ebay-string-replace-rules-file.png" alt="" width="96" height="116" /></div>
</li>
<li>Go to &#8220;Import/Export&#8221; on the Automated Editor plugin menu.
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><img class="alignnone size-full wp-image-727" title="using-automated-editor-sidebar" src="http://blog.woodylabs.com/wp-content/uploads/2011/08/using-automated-editor-sidebar.png" alt="" width="156" height="163" /></div>
</li>
<li>Choose the aforementioned rules file and hit import.
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><img class="alignnone size-full wp-image-728" title="automated-editor-and-auction-2-post-importexport" src="http://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-and-auction-2-post-importexport.png" alt="" width="498" height="132" /></div>
</li>
<li>You should now have 125 or so rules in your rules list <img src='http://blog.woodylabs.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Now go to Schedules on the plugin menu and then click Add New.</li>
<li>Scroll down and hit Select All (under the long list of rule checkboxes ebay1, ebay2 etc.)
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><img class="alignnone size-full wp-image-723" title="automated-editor-plugin-ebay-replace-select-all" src="http://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-plugin-ebay-replace-select-all.png" alt="" width="355" height="144" /></div>
</li>
<li>Scroll down again and select Most Recent Post from the Target dropdown.</li>
<li>Make sure run option is on &#8220;After a post is published&#8221;.
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><img class="alignnone size-full wp-image-724" title="automated-editor-schedule-for-ebay-phrase-replace" src="http://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-schedule-for-ebay-phrase-replace.png" alt="" width="344" height="220" /></div>
</li>
<li>Save it.</li>
<li>Turn on schedules.
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><a target="_blank" href="http://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-automation-turned-on.png"><img class="alignnone size-full wp-image-722" title="automated-editor-automation-turned-on-sm" src="http://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-automation-turned-on-sm.png" border="0" alt="" width="600" height="190" /></a></div>
</li>
<li>Post a test post, either via A2P or manually, it should remove any of the 125 annoying (common) ebay auction strings it finds! Sorted.</li>
</ol>
<h4>Notes on this method:</h4>
<ul>
<li>You will need the <a href="http://www.automatededitor.com/compare-versions/" target="_blank">Full version</a> (Ultra Pro) of Automated Editor, the free version is limited to 3 rules and this rules file alone has 125 ebay-string removing rules. It&#8217;s cheap though <a href="http://www.automatededitor.com/launch-offer-save-over-50-percent/" target="_blank">here</a>.</li>
<li>If you already have Auction2Post auction posts in the system you will have to setup a different schedule to operate on those, I usually set this up before I set any automation (it&#8217;s quite easy, just do the same thing and switch out &#8220;Most Recent post&#8221; for &#8220;all posts&#8221;, run it once then disable the schedule &#8211; you don&#8217;t want it operating on them all every time!)</li>
<li>Currently this removes 125 strings I have found previously, mostly from uk auctions, I am considering writing a simplified version of this whole setup, an &#8220;Auction2Post Post Cleaner&#8221; which you can just activate and leave, perhaps with cloud rules, so watch this space. Good thing about the above setup though is you can continually improve your own rules file by adding your own strings.</li>
</ul>
<h3>Rules File</h3>
<div>The link below offers a RAR&#8217;d version of my Automated Editor rules file which contains 125 x ebay string removal rules, yours for free <img src='http://blog.woodylabs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Please however do use carefully, as with all automated-editor situations if you don&#8217;t understand what you are doing then don&#8217;t use it, this is for the people that understand the above problem and have the full version of the plugin.</div>
<div align="center"><img class="aligncenter size-full wp-image-726" title="ebay-string-replace-rules-file" src="http://blog.woodylabs.com/wp-content/uploads/2011/08/ebay-string-replace-rules-file.png" alt="" width="96" height="116" /><br />
<br /><a href="http://blog.woodylabs.com/downloads/Woodylabs_AE_Rules_Export_125.rar">Download Rules File</a><br />[Right click-Save as]</div>
<div class="shr-publisher-718"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.woodylabs.com/2011/08/remove-unwanted-ebay-strings-from-a2p-auction2post-posts-with-automated-editor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automated Editor Released!</title>
		<link>http://blog.woodylabs.com/2011/08/automated-editor-released/</link>
		<comments>http://blog.woodylabs.com/2011/08/automated-editor-released/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 12:33:55 +0000</pubDate>
		<dc:creator>Woody</dc:creator>
				<category><![CDATA[Affiliate Marketing]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Automated Editor]]></category>
		<category><![CDATA[Small Nugget Projects]]></category>

		<guid isPermaLink="false">http://blog.woodylabs.com/?p=697</guid>
		<description><![CDATA[A nice small chunk of a project, Automated Editor is a wordpress plugin which allows you to automate some of the post editing process. Written to be lightweight and flexible it can do a lot with a little input. The plugin replaces a previous script/small app I had previously commissioned to offer automatic string replacement/removal [...]<hr /><a href="http://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.automatededitor.com/i/automated-editor-box-109-t.png" alt="Automated Editor wordpress plugin" border="0" align="left" style="margin:9px;"/><br />
A nice small chunk of a project, <a href="http://www.automatededitor.com" target="_blank">Automated Editor</a> is a wordpress plugin which allows you to automate some of the post editing process. <a href="http://www.automatededitor.com/compare-versions/" target="_blank"><img src="http://www.automatededitor.com/i/download-automated-editor-word-press-plugin.png" alt="Automated Editor wordpress plugin" border="0" align="right" style="margin:5px;"/></a>Written to be lightweight and flexible it can do a lot with a little input. The plugin replaces a previous script/small app I had previously commissioned to offer automatic string replacement/removal from posts at point of publishing. With this public release version though it has had all the bells and whistles added to it, and will do some other useful tasks such as the following:
<div style="margin-top:20px">
<ul>
<li>Replace one string with another (String replace) e.g. Replace ‘X’ with ‘Y’</li>
<li>Remove instances of a string (String remove) e.g. Remove all instances of ‘X’</li>
<li>Replace strings which match a regex rule with another string (Regex replace) e.g. Replace any numbers (^[0-9]{3}$) with ‘y’</li>
<li>Remove strings which match a regex rule (Regex replace) e.g. Remove any numbers (^[0-9]{3}$)</li>
<li>Prepend a string onto the front of a post (Prepend) e.g. Add ‘X’ to the top of a post</li>
<li>Append a string onto the back of a post (Append) e.g. Add ‘X’ to the bottom of a post</li>
<li>Add a post into a category (Add category) e.g. Add category ‘X’ to the post if its not already added.</li>
<li>Add a tag onto a post (Add tag) e.g. Add tag ‘X’ to the post if its not already added.</li>
<li>Change a posts date</li>
<li>Change a posts status</li>
</ul>
<p>(Taken from <a href="http://www.automatededitor.com/anatomy/#rules" target="_blank">here</a>.)</div>
<p>If you want to read more about the plugin you can check out this post on, <a href="http://www.automatededitor.com/what-is-the-point-in-the-automated-editor-plugin/" target="_blank">What is the point in Automated Editor</a> or go right ahead and <a href="http://wordpress.org/extend/plugins/automated-editor/" target="_blank">get it from wordpress.org</a> or buy the professional version at <a href="http://www.automatededitor.com/compare-versions/" target="_blank">AutomatedEditor.com</a>.</p>
<p>Watch this space for a few posts on how I use the plugin, (it works fantastically well when rigged up with <a href="http://blog.woodylabs.com/2009/10/auction-2-post/" target="_blank">Auction2Post</a>.)</p>
<div class="shr-publisher-697"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.woodylabs.com/2011/08/automated-editor-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>get_tag_name function for wordpress</title>
		<link>http://blog.woodylabs.com/2011/07/get_tag_name-function-for-wordpress/</link>
		<comments>http://blog.woodylabs.com/2011/07/get_tag_name-function-for-wordpress/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 16:48:04 +0000</pubDate>
		<dc:creator>Woody</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.woodylabs.com/?p=679</guid>
		<description><![CDATA[get_cat_name is a simple useful function to get the category name from its id in wordpress, there isn&#8217;t one for tag (and you cant use the same one&#8230;) so here&#8217;s I adapted it for tags. TBH its super lazy to be using this, but meh. Uses get_term. I am writing Automated Editor, a wordpress plugin [...]<hr /><a href="http://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://codex.wordpress.org/Function_Reference/get_cat_name" rel="nofollow" target="_blank">get_cat_name</a> is a simple useful function to get the category name from its id in wordpress, there isn&#8217;t one for tag (and you cant use the same one&#8230;) so here&#8217;s I adapted it for tags. TBH its super lazy to be using this, but meh. Uses <a href="http://codex.wordpress.org/Function_Reference/get_term" rel="nofollow" target="_blank">get_term</a>.</p>
<pre class="brush: php; title: ; notranslate">
function get_tag_name( $tag_id ) {

     $tag_id = (int) $tag_id;
     $tag = get_term( $tag_id, 'post_tag'; );

     if ( ! $tag || is_wp_error( $tag ) )

          return '';

     return $tag-&gt;name;

}
</pre>
<p>I am writing <a href="http://www.automatededitor.com">Automated Editor</a>, a wordpress plugin which will give you a bunch of pro automation possibilities, in case you were wondering.</p>
<div class="shr-publisher-679"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.woodylabs.com/2011/07/get_tag_name-function-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hackers wrecking your shared host account? Check your Website Portfolio Integrity</title>
		<link>http://blog.woodylabs.com/2011/05/hackers-wrecking-your-shared-host-account-check-your-website-portfolio-integrity/</link>
		<comments>http://blog.woodylabs.com/2011/05/hackers-wrecking-your-shared-host-account-check-your-website-portfolio-integrity/#comments</comments>
		<pubDate>Mon, 23 May 2011 11:41:32 +0000</pubDate>
		<dc:creator>Woody</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Search Engine Optimisation]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.woodylabs.com/?p=616</guid>
		<description><![CDATA[10 days of perpetual issues with hackers. 10 DAYS. 100+ sites bombed randomly between every 5 minutes and 5 hours and that&#8217;s only after proper detection, who knows how far it had gone before. But from the relentless irritation some positives developed, if you are in the (precarious) position of hosting LOTS of websites on [...]<hr /><a href="http://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
			<content:encoded><![CDATA[<p>10 days of perpetual issues with hackers. 10 DAYS. 100+ sites bombed randomly between every 5 minutes and 5 hours and that&#8217;s only after proper detection, who knows how far it had gone before. But from the relentless irritation some positives developed, if you are in the (precarious) position of hosting LOTS of websites on a shared hosting account or you run a shared hosting service then read on, the value of maintaining limit pushing amounts of sites on a single account really should be considered &#8211; if the loss of earnings for all the hacker downtime doesn&#8217;t wipe out the savings then the cost of repair, security hole identification and eradication probably will, not to mention the loss of face to the search engines.</p>
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align:center">The following is a half vent, half information dump spawned from the irritation of being hacked, again. I have written a piece of monitoring/reconciliation software (Windows based works with your ftp account) to deal with detection/fixing. If you’re in the same boat and all you want is the alpha release, skip to the bottom and <a href="http://blog.woodylabs.com/2011/05/hackers-wrecking-your-shared-host-account-check-your-website-portfolio-integrity/#respond">drop me a comment</a>.</div>
<div align="center"><img src="http://blog.woodylabs.com/wp-content/uploads/2011/05/is-wordpress-a-website-security-hole.jpg" alt="" title="is-wordpress-a-website-security-hole" width="600" height="338" class="aligncenter size-full wp-image-621" /></div>
<h3>Website hacker entrance vectors (have any security holes?)</h3>
<p><strong>Common CMS, E-Commerce systems and forums</strong> (out of date or zero day, they all have or have had vulnerabilities) &#8211; WordPress, Drupal, OSCommerce, Gallery, PHPBB, VBulletin etc. etc. Particularly relevant here are the open source systems, but they are all susceptible &#8211; how many of these do you have installed where? For me these could of been answered with &#8220;a lot&#8221; and &#8220;some places&#8221;, clarity has now been restored but more on that later.</p>
<p><strong>CMS Plugins (^^)</strong> – Often overlooked (especially by me), installed plugins can in themselves be entry vectors, often CMS’s push their communities to develop additional functionality for their system, which is a good thing, however if the system itself doesn’t deal particularly well with the security of folder structures or indeed how plugins are accessed they can offer ways in. Be careful with plugins which deal with file management and code execution (e.g. file attachers/uploaders etc.) Try to use late version highly rated plugins from reputable sources, with things like WordPress, plugins are low risk though as it has an excellent security model.</p>
<p><strong>Bespoke server-side code and CMS&#8217;s</strong> &#8211; in my experience these is often LESS likely to get hacked, firstly &#8220;hackers&#8221; in this case are more likely to be script kiddies sitting in web cafes in some of the poorer world nations, they often use known exploits on common systems rather than trawl the web, searching for one off programmer mistakes. If you are behind the bespoke stuff leave out as many foot prints as possible and triple check everything. For bespoke stuff the most likely point of entry is simple SQL Injection, use SQL parameters.</p>
<p><strong>FTP/WebDav</strong> &#8211; This really comes down to passwords as next indicated.</p>
<p><strong>Passwords</strong> – Acquired by trojans or traffic sniffers, it becomes irrelevant what security you have in place across the whole setup if you don’t look after them properly. Avoid connecting to anything unencrypted (or at all if possible) on any network you don’t 100% trust, WIFI and wired, even if it’s a friends they could have a network sniffing Trojan on an idle machine. Install good anti-virus and protection software. Use Avast (free for private use) and Spybot Search and Destroy (these two are plenty.) Be careful with providing access to other users, whether it FTP, CMS, SSH, whatever – you may trust them but do you trust their computers?</p>
<p><span id="more-616"></span></p>
<h3>Detection and Fixing – Realising you’ve been hit and fixing it</h3>
<p>So after they gain entry, what would a hacker really do? Often with web hacking the motivation is kudos, money or sabotage – all are achieved through defacing, deleting or modifying web pages/logic and/or altering/downloading databases. A nightmare from the point of view of shared hosting users.</p>
<p>Depending on how they gain entry a hacker (or their automated executing code) may search through all of the files they can access, through ftp or server-side scripts, built to identify possible files to manipulate. They may download copies of things (e.g. databases!) but will likely set about cycling through all available webpage files and doing things such as:</p>
<ul>
<li>Inserting code within the page (iframes to bad websites, links to their websites – designed to improve their search engine rankings, redirect code which just shuttles people on to their sites)</li>
<li>Replacing the file with a predesigned page (kudos fronts ‘this website was hacked by&#8230;’)</li>
<li>Replacing common server-side functions and variables (e.g. replacing all the send values on email scripts to forward emails to an account other than the owners)</li>
</ul>
<p>If you have a single site, or 10 or something the chances are you personally check them all every now and again, getting a little facetime at least once a week say. In this case your opportunity for hosting a hacked site is 7 days, not awful, not great – Google and browsers will start blocking your site if the hacker has inserted any code going to malware or similar, and otherwise may start to drop you down the rankings if your site now displays a ‘hacked by..’ page instead of your wholesome site.</p>
<p>In the case of a lot more sites on the host this can mean no detection for a longer time, if no system is in place, often first recognised through a drop in statistics/earnings (more likely earnings as in the case of iframed malware a change in the number of hits can be not hugely obvious.)</p>
<p>To add confusion to the mix it’s not unknown for hackers to mask their changes to you, it’s very easy with .htaccess files and php/asp headers (for example) to show content relative to its viewer. E.g. the hacker could shuttle people coming in from Google to a hacked page but people that access the site directly (typing it in) get shown the normal site. Furthermore they may not hit every site you have, perhaps a handful of random choices, some folders not others, a smokescreen like attack which could change each time.</p>
<p>Chances are once you get all your pages fixed and get around to looking at where the security hole is that when you recheck your sites they would have been hit again. This tells you two things, 1. The hacker is relentless (or more likely has a relentless automated program, exploiting 24/7) and 2. You have not plugged the security hole. Or if you are really unlucky you are being hacker tag teamed.</p>
<p>So anyway, detection. How do you go about knowing the integrity of your web portfolio? What if it spans 10 shared hosting accounts or 4 servers? Well likely if you own your own server you have spent the time/cash in locking everything down, what I suggest here would be useful to you guys but you may already have a better solution in place.</p>
<p>Currently there are a bunch of services which will do this for you, of which I have tried zero. “Monitoring” services are available worldwide ranging in prices drastically, for me though even the high end services didn’t offer a full set of features and were mostly hugely overpriced but for the top 50% of the portfolio, not effective for me.</p>
<p>The good things about using external monitoring services are obvious but none seemed to be able to offer realistic change monitoring (e.g. WordPress blogs may change content between &lt;div id=”whatever”&gt; and &lt;/div&gt; every hour but the rest of the page should stay almost the same.) It is important they see the addition of malicious code to good pages and not throw constant false alarms. For ‘this website was hacked by..’ pages though they probably do a good job (as well as malware detection.) Uptime monitoring is also common as part of the packages, useful without doubt.</p>
<p>I suggest another way though of monitoring an established portfolio, that is the way I have resolved my recent hacker attacks, a realistic option for shared host/anywhere-in-the-world-with-a-laptop client based use. Ultimately an extension of a few older applications I wrote to manage a growing portfolio, weathered by several hacks across accounts within the past 6 months – Hard checks of every important file.</p>
<div align="center"><img src="http://blog.woodylabs.com/wp-content/uploads/2011/05/website-integrity.jpg" alt="" title="website-integrity" width="600" height="450" class="aligncenter size-full wp-image-619" /></div>
<div align="center" style="font-size:16px;font-weight:700;margin:30px">“The best way to check the integrity of your shared hosting account is to physically check the integrity of your shared hosting account.”</div>
<p>At first I wrote my system to simply allow me to take stock of the sites and CMS’s I have in place, to work out possible security holes from behind the scenes – but it turns out it works surprisingly well in identifying breaches. By checking your actual live file structure (.htaccess, index.php, default.aspx, index.html etc.) against a known correct file structure snapshot, you take the whole http part of the checking out of the loop, effectively making it a higher level integrity check than external services can ever offer.</p>
<p>By making Checksums of every critical file (often hackers just hit index.php, index.html, default.aspx etc.) within a given ftp/file structure and then automatically rechecking at scheduled points it becomes easy to minimise your window for financial fallout from hackers. This may seem like a time/bandwidth/processor consuming task but in actuality 100 websites with WordPress installed could be checked in a few Mb of download – in terms of modern data use that’s a few browses of a facebook photo gallery. What’s more it can run in the background, only prompting you on changes to files, as frequently as you want.</p>
<p>The side benefit of producing complete hosting account checksum snapshots is you are also able to accurately backup a working copy of your hosting account. Built into the checking process this means that you can then correct hackers’ malicious changes with a click of a button.</p>
<p>This of course does not take into account more hard-file based websites, database changes or regularly altered sites. I recommend automated screenshots to cover these or the combination of external monitoring services and integrity checking.</p>
<p>I have written an alpha release of this system (named Website Integrity Checker for now) and will gladly distribute/discuss it if you drop me a comment below. A beta copy might make its way out sometime.</p>
<div class="shr-publisher-616"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.woodylabs.com/2011/05/hackers-wrecking-your-shared-host-account-check-your-website-portfolio-integrity/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Multiple WordPress blogs from 1 instance / 1 wordpress folder to maintain</title>
		<link>http://blog.woodylabs.com/2010/01/multiple-wordpress-blogs-from-1-instance-1-wordpress-folder-to-maintain/</link>
		<comments>http://blog.woodylabs.com/2010/01/multiple-wordpress-blogs-from-1-instance-1-wordpress-folder-to-maintain/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 16:34:27 +0000</pubDate>
		<dc:creator>Woody</dc:creator>
				<category><![CDATA[Affiliate Marketing]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Transactional SQL]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.woodylabs.com/?p=142</guid>
		<description><![CDATA[WordPress is a victim of its own success, but its no victim. It is huge. Millions upon millions of people use wordpress to power their blogs (like this one for example) to make money and to have their voice present on the internet. It has become a first stop for a huge host of people [...]<hr /><a href="http://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
			<content:encoded><![CDATA[<p>WordPress is a victim of its own success, but its no victim. It is huge. Millions upon millions of people use wordpress to power their blogs (like this one for example) to make money and to have their voice present on the internet. It has become a first stop for a huge host of people making their way online and is often one that leaves such a positive impression that it never leaves that same user. Its free, its slick, its efficient, its easy&#8230;literally I have nothing but good things to say about wordpress and the people that support it. I could spend hours applauding the democratisation of tools that is wordpress and discuss how its helped the internet blossom and why its so key to understanding the web today but that&#8217;s not what this post is about. If you haven&#8217;t already got a wordpress blog then I would suggest you get one, either for free at wordpress.com or from wordpress.org (the latter if you have your own hosting) &#8211; and once you have one you might soon realise the huge benefit of having 2, 3, 4 or more wordpress blogs. These are real benefits.</p>
<p>The question then comes after  you have 30 wordpress blogs on the go, various niche market&#8217;s blogged too or personal sites about cats or what have you, what then? Updates then. WordPress do update fairly regularly, they aren&#8217;t the slow moving behemoths some other companies are because they are open source, and that&#8217;s a good thing. Anyway maintaining 30 copies of wordpress is actually a lot easier than it sounds, an update is usually nothing more than 10 minutes uploading the new wordpress files over the old ones via FTP. But say you had a little project where you wanted to create a few more wordpress blogs. For the sake of this post lets say you wanted 90 blogs. 90 WordPress blogs installed on an average web host (I suggest 1and1) is not a big deal. It can be as big a deal as you make of it but in your pursuits and interests online its potentially likely to crop up.</p>
<p>You can run 90 wordpress blogs (or 1000 etc.) from 1 instance of wordpress. That is 1 wordpress folder on your host serving to 90 blogs at blogsite1.co.uk, blogsite2.com etc. thats nothing new &#8211; I am sure the quicker off the mark or longer in the tooth of wordpress users have been doing it for a while, but somehow I missed this up until I got past the 30 blog mark and so I thought its about time I looked at the option of hundreds of wordpress-blogs running from 1 folder, a project has come up. The reason this works by the way is the wonderful way (take not web developers) that wordpress splits its config files and its database. The only file in the wordpress files you upload to your blog that contains any site specific data is the config file, which pulls everything from the database.</p>
<p>On the preface there are both good and bad things about doing this with word press, here are the pro&#8217;s and con&#8217;s as I see them pre-project.</p>
<p><strong>Pros</strong></p>
<ul>
<li>Single central wordpress folder  &#8211; 1 wordpress folder to update periodically</li>
<li>File size &#8211; rather than using up 4mb per wordpress install, this method uses 4mb per x number of wordpress installs, although space isn&#8217;t an issue really in current web hosting</li>
<li>Plugins and themes only need to be copied once &#8211; they can effectively be shared</li>
<li>Easier to backup &#8211; backing up files of wordpress blogs is pretty pointless apart from wp-content (uploaded images, themes, etc) &#8211; putting all your blogs in one basket means backing up the whole lot is a breeze, 1 folder not 90!</li>
<li>WordPress database is seperate &#8211; you could potentially run all the blogs from 1 database too &#8211; (capacity dependant) &#8211; as wordpress allows table prefix&#8217;s</li>
<li>Adding a blog can be automated <img src='http://blog.woodylabs.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  &#8211; replicating the first wp database from an install can mean tons less setup work</li>
</ul>
<p><strong>Cons</strong></p>
<ul>
<li>Permalink structure may have to be the same? *not 100% on this one and havent tested but there may be issues with permalink setups across multiple blogs as htaccess is shared*</li>
<li>Other .htaccess differences &#8211; because you will effectively only have 1 .htaccess file for all domains pointing to this folder, this puts all that custom .htaccess code out of the window</li>
<li>Flip side of themes being easy to install is that editing one theme will lead to all blogs using that theme to notice the change, fine if your blogs are stable in design but multiple versions of the same theme will be required if you want to tweak these on a blog specific level, which could make for a messy confusing setup if not through through</li>
<li>If you are running a network of blogs and want to stay under the radar or just want the sites to be as different as possible &#8211; by nature of single resource they will leave footprints unless you are aware and make sure you do things like rename folders for themes non-sequentially etc ( or maybe don&#8217;t be paranoid :p )</li>
<li>Centralising the files for all domains/sites/blogs does mean this folder on this box does then become a single point of failure, loose/break this and the whole of your blog network/project is down. Probably not such an issue with stable hosts these days</li>
<li>As previous point if you do update, change a file or accidentally delete anything it does effect every site &#8211; its a risk but not a big one just be careful!</li>
</ul>
<p><strong>Limitations</strong></p>
<ul>
<li>Unsure about .htaccess but presume custom rewriting becomes a pain as all sites share a file</li>
<li>There will be a limit as to how many blogs you can run off a single install. It&#8217;s probably thousands though &#8211; if you had 30,000 sites for example &#8211; the file which points the install to the right database tables would become bloated</li>
</ul>
<p><strong>How to run tens, hundreds or thousands of wordpress blogs from 1 instance &#8211; install wordpress once for hundreds of blogs &#8211; without MU.</strong></p>
<ol>
<li>Install wordpress into a folder on you hosting (download latest from wordpress.org and then upload via FTP/copy across network)</li>
<li>Get your database details together, you will need Database Name, Database Username, Database Password and the Database host for each of the databases you are going to host wordpress tables in</li>
<li>Install a single blog using the normal method &#8211; point a domain at the folder, go to that domain and follow the wordpress wizard, entering your database connection details and this blogs title.
<ol>
<li>Go through this newly installed blog and commit any changes that you will want duplicated throughout the new installs &#8211; delete the &#8220;hello world&#8221; post/default wp links for example.</li>
<li>Imagine this like creating a ghost image for a network of pc&#8217;s &#8211; you want to make a bare bones default wordpress setup so you can replicate this onwards without having to redo it.</li>
</ol>
</li>
<li>Happy with  your ghost blog setup? go to your phpmyadmin (assuming you have it) and export all the tables for this blog into SQL.</li>
<li>Open that SQL into your favourite text editor, in this case I am using Dreamweaver because I like its find+replace.</li>
<li>You will need to do several find + replaces here, but by doing this you can literally clone a wordpress installation &#8211; (works as at 2.9.1 anyway) &#8211; this is great for mass distribution (This is quicker than installing and can be automated)</li>
<li>For example if your site was &#8220;harrysblog1.co.uk&#8221; with a title of  &#8220;Harrys Blog 1&#8243; then do a find and replace for &#8220;harrysblog1.co.uk&#8221;, switching out the new domain to be added, same with title&#8217;s, users, post&#8217;s etc. This way you could clone a wordpress site and switch out words&#8230;you can change the table prefix this way too.</li>
<li>Run this newly modified SQL on whatever mysql database you want to run the blog from (could be same one if you mass replaced the table prefix&#8217;s)</li>
<li>Alter your wp-config.php file very simply:
<ol>
<li>Open it up and put a bit of logic which basically says &#8220;what domain am I loading from, ah this one &#8211; use this DB and this table prefix&#8221; &#8211; This logic can be as simple or as complex as you want it to be &#8211; I kept mine short and sweet with literally:</li>
</ol>
</li>
</ol>
<div style="border:1px solid #09C; background-color:#b5d1ea;padding:4px;margin:10px;">$thisDom = $_SERVER['HTTP_HOST'];</p>
<p>if ($thisDom == &#8220;www.specificDomainWhatever.co.uk&#8221; || $thisDom == &#8220;specificDomainWhatever.co.uk&#8221;){ $useDB = 1; $table_prefix = &#8220;specificDomainWhatever_&#8221;; }</p>
<p>if ($useDB == 1){</p>
<p>define(&#8216;DB_NAME&#8217;, &#8216;xxx&#8217;);</p>
<p>/** MySQL database username */<br />
define(&#8216;DB_USER&#8217;, &#8216;xxx&#8217;);</p>
<p>/** MySQL database password */<br />
define(&#8216;DB_PASSWORD&#8217;, &#8216;xxx&#8217;);</p>
<p>/** MySQL hostname */<br />
define(&#8216;DB_HOST&#8217;, &#8216;xxx&#8217;);</p>
<p>/** Database Charset to use in creating database tables. */<br />
define(&#8216;DB_CHARSET&#8217;, &#8216;utf8&#8242;);</p>
<p>/** The Database Collate type. Don&#8217;t change this if in doubt. */<br />
define(&#8216;DB_COLLATE&#8217;, &#8221;);</p>
<p>}</p></div>
<p>*note this is just how I did it, there are other ways &#8211; the code works but was just to test the theory &#8211; when upscaled to a network of xxx or x,xxx sites this is automated quite easily</p>
<p>*note2 I am having to cut this post short but if anyone has any questions or wants to know more/help on replicating wordpress or multi blog &#8211; 1 wordpress instance installs let me know in the comments</p>
<p><strong>References</strong></p>
<p>Striderweb &#8211; <a rel="nofollow" href="http://striderweb.com/nerdaphernalia/2006/10/hello-again-world/">this post</a> pretty much explains the theory, a bit like this post &#8211; but I actually happened across it after writing the post &#8211; well worth reading if your going to do this &#8211; Stephen Rider has made a great plugin that will do everything you want it to do as above, I winged it and just modified the wp-config which simply worked in my case so personally I didn&#8217;t use it, but no doubt its probably worth a try if  you want a more deep solution.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Woody Hayday<br />
9a Holywell Hill</p>
<p>Hi Jo</p>
<p>I have just found out that I will be away to thailand in the beginning of march and as my 6 months of tenancy is up in feb (08th) I was wondering how it worked with regards to rolling contracts?</p>
<p>I would like to move out just before</p>
</div>
<div class="shr-publisher-142"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.woodylabs.com/2010/01/multiple-wordpress-blogs-from-1-instance-1-wordpress-folder-to-maintain/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Auction 2 Post</title>
		<link>http://blog.woodylabs.com/2009/10/auction-2-post/</link>
		<comments>http://blog.woodylabs.com/2009/10/auction-2-post/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 14:18:15 +0000</pubDate>
		<dc:creator>Woody</dc:creator>
				<category><![CDATA[Affiliate Marketing]]></category>
		<category><![CDATA[Search Engine Optimisation]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Auction2Post]]></category>
		<category><![CDATA[ebay partner network]]></category>

		<guid isPermaLink="false">http://blog.woodylabs.com/?p=87</guid>
		<description><![CDATA[The reason I am writing about this WordPress plugin is long winded, but essentially a while back I wrote a website which featured a hand picked 3 best auctions in certain categories from ebay and posted them to a custom themed WordPress blog, the idea being that people could see the 3 most expensive cars [...]<hr /><a href="http://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
			<content:encoded><![CDATA[<p>The reason I am writing about this WordPress plugin is long winded, but essentially a while back I wrote a website which featured a hand picked 3 best auctions in certain categories from ebay and posted them to a custom themed WordPress blog, the idea being that people could see the 3 most expensive cars of Tuesday or the 3 most luxury houses for sale etc.  I had written a plugin for WordPress to do this which worked pretty well, but lacked the finesse a full time project would get. This was probably a few years ago, but the other day I happened across Auction2Post and instantly it reminded me of the pitfalls I had encountered with this previous site/plugin. I went to the homepage of the site and was instantly put off, as most of you should be by these sales pages. Having been on the other side of affiliate marketing online I know landing pages and selling copy and unless I am selling a similar product don&#8217;t particularly enjoy reading other peoples.</p>
<p>But irrelevant of the selling gumpf I had heard good things. In the uk it worked out as £68 or so with currency conversion to <a href="http://www.woodylabs.com/r/a2p.php" target="_blank" rel="nofollow">buy Auction 2 Post</a> and a pack of 20 themes and it is, worth it. Worth it that is if you intend to use it to satisfy a need. I wouldn&#8217;t buy it if you are just looking for some new &#8220;get rich quick scheme&#8221; to burn your money into, get it if you know wordpress, get it if you already have some ebay sites (php bay, bans, bespoke &#8211; please say you have bespoke!) or a good use within an established site network/blog context.</p>
<p><a href="http://www.woodylabs.com/r/a2p.php" target="_blank" rel="nofollow"><img border="0" src="http://blog.woodylabs.com/wp-content/uploads/2009/10/auction-2-post.jpg" alt="auction-2-post" title="auction-2-post" width="149" height="145" class="alignright size-full wp-image-88" /></a>There are lots of ways  you can use Auction 2 post, essentially it just posts ebay auctions as posts&#8217; and offers you a host of ways of doing that, within templates, automatically etc. and you can stay within the ebay partner network rules as long as you invest a bit of time in reading them (you should do this when you sign up, by the way!) A word of caution at this point though, EbayPartnerNetwork is apparently getting hotter on the unscrupulous affiliate and if you were not careful you could probably tear their Terms of Service to shreds with this plugin, not that I would know about doing that! EPN (Ebay Partner Network) is lucrative and worth investing time if your a natural SEO developer, auction 2 post is a nice implementation of a wordpress plugin that helps you into this &#8211; but its all about how you use it!</p>
<p>I won&#8217;t go into how I am using this WordPress plugin, or how you should &#8211; there are a lot of great ways this can work for you. I have set up several experimental sites and am using it in xx other blogs, I will perhaps release some results, experiences and stats in the near future, although we don&#8217;t want A2p to get too big do we <img src='http://blog.woodylabs.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  The forum&#8217;s and support for Auction 2 Post are great, zizby/radio is quick to respond to your questions about the plugin &#8211; the member area is simple but I have found a few dead links &#8211; nothing important and I am sure they&#8217;ll fix this. In essence if you know what your doing with the web and wordpress you need this plugin in your affiliate arsenal!</p>
<div align="center" style="margin-right:auto;margin-left:auto;width:400px;border:1px solid #09C; background-color:#b5d1ea;padding:4px;"><img src="http://blog.woodylabs.com/wp-content/uploads/2009/10/auction-2-post-wordpress-plugin.gif" alt="auction-2-post-wordpress-plugin" title="auction-2-post-wordpress-plugin" width="32" height="32" class="alignleft size-full wp-image-99" /><span style="font-size:14px;font-weight:600"><a href="http://www.woodylabs.com/r/a2p.php" target="_blank" rel="nofollow">Get Auction 2 Post</a></span><br/>(Just skip through the blurb and click order now)</div>
<p>&nbsp;</p>
<div align="center" style="margin-right:auto;margin-left:auto;width:400px;border:1px solid #09C; background-color:#b5d1ea;padding:4px;"><strong>Auction 2 Post Discount Code:</strong> <a href="http://www.woodylabs.com/r/a2p.php" target="_blank" rel="nofollow">789FB24704</a><br/>Use this code you also get $20/£13 off:</div>
<p>&nbsp;</p>
<div class="shr-publisher-87"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.woodylabs.com/2009/10/auction-2-post/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

