<?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>Eko UK Limited</title>
	<atom:link href="http://www.ekouk.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ekouk.com</link>
	<description>We Build More Than Just Websites</description>
	<lastBuildDate>Mon, 29 Apr 2013 11:43:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Good WordPress themes</title>
		<link>http://www.ekouk.com/blog/good-wordpress-themes/</link>
		<comments>http://www.ekouk.com/blog/good-wordpress-themes/#comments</comments>
		<pubDate>Thu, 25 Apr 2013 15:12:09 +0000</pubDate>
		<dc:creator>lee</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.ekouk.com/?p=3370</guid>
		<description><![CDATA[Impressed with these guys, clean attractive design and have customised WordPress professionally. WordPress Premium Themes &#160;]]></description>
			<content:encoded><![CDATA[<p>Impressed with these guys, clean attractive design and have customised WordPress professionally.</p>
<p><a href="http://www.appthemes.com/cp/go.php?r=28754&amp;i=l0">WordPress Premium Themes</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekouk.com/blog/good-wordpress-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to search by custom meta keys in WordPress</title>
		<link>http://www.ekouk.com/insight/how-to-search-by-custom-meta-keys-in-wordpress/</link>
		<comments>http://www.ekouk.com/insight/how-to-search-by-custom-meta-keys-in-wordpress/#comments</comments>
		<pubDate>Wed, 16 Jan 2013 09:46:20 +0000</pubDate>
		<dc:creator>james</dc:creator>
				<category><![CDATA[Insight]]></category>
		<category><![CDATA[Knowledge]]></category>

		<guid isPermaLink="false">http://www.ekouk.com/?p=3265</guid>
		<description><![CDATA[A couple of sites we&#8217;ve been developing recently have required us to create custom post types with meta keys, and then create a search of the values stored in the meta keys. Here&#8217;s how we achieved it. The code used in this example was written for use with the plugin Job Manager, allowing you to [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of sites we&#8217;ve been developing recently have required us to create custom post types with meta keys, and then create a search of the values stored in the meta keys. Here&#8217;s how we achieved it. The code used in this example was written for use with the plugin Job Manager, allowing you to search on vacancies.</p>
<h2>Create a custom search form</h2>
<p>The first step is to create your own custom search form to bypass the standard wordpress search. This function goes into function.php and then can be called by whatever page you want the form to appear on.</p>
<pre><code>function custom_search_form(){
?&gt;

    &lt;form id="searchform" action="http://penny.ekouk.com/searchresults/" method="get"&gt;
    &lt;label&gt;Job description:&lt;/label&gt; &lt;input id="description" type="text" name="description" value="" /&gt;

     &lt;label&gt;Salary:&lt;/label&gt; &lt;select name="salary"&gt; 
                              &lt;option value=""&gt;Any&lt;/option&gt;&lt;/select&gt;
                              &lt;option value="15000"&gt;15k +&lt;/option&gt;
                              &lt;option value="20000"&gt;£20k +&lt;/option&gt;
                              &lt;option value="30000"&gt;£30k +&lt;/option&gt;
                              &lt;option value="40000"&gt;£40k +&lt;/option&gt;
                              &lt;option value="50000"&gt;£50k +&lt;/option&gt;
                              &lt;option value="60000"&gt;£60k +&lt;/option&gt;
                              &lt;option value="70000"&gt;£70k +&lt;/option&gt;
                              &lt;option value="80000"&gt;£80k +&lt;/option&gt;
                              &lt;option value="90000"&gt;£90k +&lt;/option&gt;
                              &lt;option value="100000"&gt;£100k +&lt;/option&gt;
                            &lt;/select&gt;
 
     &lt;label&gt;Location:&lt;/label&gt; &lt;select name="region"&gt; 
                                &lt;option value=""&gt;Anywhere&lt;/option&gt;
                                &lt;option value="east"&gt;East&lt;/option&gt;
                                &lt;option value="south"&gt;South&lt;/option&gt;
                                &lt;option value="west"&gt;West&lt;/option&gt;
                                &lt;option value="north"&gt;North&lt;/option&gt;
                               &lt;/select&gt;

     &lt;input id="searchsubmit" type="submit" value="Search" /&gt;

   &lt;/form&gt;
&lt;?php
}</code></pre>
<h2>Create your results page</h2>
<p>Next you need to create the page that will process the submission of the form, and display the search results.</p>
<pre><code>$region = $_GET['region'];
$salary = $_GET['salary'];
$description = $_GET['description'];
$searched_posts = meta_key_search($region, $salary, $description);
while($searched_posts-&gt;have_posts()) : $searched_posts-&gt;the_post();
   jobman_display_job_search($post-&amp;gt;ID);
endwhile;</code></pre>
<p>This gets the search terms passed into the page via the URL, and then uses two functions to process them. The first function performs the search query, the second works with search results and outputs them in a useful way.</p>
<h2>The search function</h2>
<p>Add this to functions.php</p>
<pre><code>function meta_key_search($region, $salary, $description){
global $wpdb;
$args = array(
          'post_type' =&gt; 'jobman_job',
          'orderby' =&gt; 'meta_value_num',
          'order' =&gt; 'ASC',
          'meta_query' =&gt; array(
               array(
                  //data4 is location 
                  'key' =&gt; 'data4',
                  'value' =&gt; $region,
                  'compare' =&gt; 'LIKE',
                ),
               array(
                  //data1 is salary
                  'key' =&gt; 'data1',
                  'value' =&gt; array($salary, 99999999),
                  'compare' =&gt; 'BETWEEN',
               ),
               array(
                  //data5 is description
                  'key' =&gt; 'data5',
                  'value' =&gt; $description,
                  'compare' =&gt; 'LIKE',
               )
           ),
          'sentance' =&gt; true, 
           );

$searched_posts = new WP_Query($args);

echo "&lt;br&gt;Total results: ";
echo $total_results = $searched_posts-&gt;found_posts;
echo "&lt;br&gt;&lt;br&gt;";

return $searched_posts;
}</code></pre>
<p>The &#8216;post_type&#8217; is the name of your custom post type, for Job Manager this is &#8216;jobman_job&#8217;. The Meta Query is where the search on meta values happens. Use the meta key, the value you&#8217;re looking for, and how you want to compare the query with the stored data. The final line &#8216;sentance&#8217;=&gt;true, allows the query to search for phrases in the database. Without this line it will only search for exact matches. Sentance isn&#8217;t a typo (by me anyway), it&#8217;s in the core wordpress code.</p>
<h2>Processing the results</h2>
<p>This code is probably more complicated than most custom post types will need because it&#8217;s been built to work with the existing Job Manager plugin. If all you want to do is list the post title in your results you don&#8217;t even need this function. This is for putting content from the meta keys into the results page.</p>
<pre><code>function jobman_display_job_search($job) {

global $jobman_shortcode_job, $jobman_shortcodes, $jobman_field_shortcodes;
$options = get_option( 'jobman_options' );
$content = '';

if( is_string( $job ) || is_int( $job ) ) 
    $job = get_post( $job );

if( $options['user_registration'] &amp;&amp; $options['loginform_job'] )
    $content .= jobman_display_login();

if( NULL != $job ) {
     $jobmeta = get_post_custom( $job-&gt;ID );
     $jobdata = array();
     foreach( $jobmeta as $key =&gt;; $value ) {
         if( is_array( $value ) ) 
             $jobdata[$key] = $value[0];
         else 
             $jobdata[$key] = $value;
      }
}

// Check that the job hasn't expired
if( array_key_exists( 'displayenddate', $jobdata ) &amp;&amp; '' != $jobdata['displayenddate'] &amp;&amp; strtotime($jobdata['displayenddate']) &lt;= time() )
    $job = NULL;

// Check that the job isn't in the future
if( strtotime( $job-&gt;post_date ) &gt; time() )
    $job = NULL;

if( NULL == $job ) {
    $page = get_post( $options['main_page'] );  
    $page-&gt;post_type = 'jobman_job';
    $page-&gt;post_title = __( 'This job doesn't exist', 'jobman' );

    $content .= '&lt;p&gt;' . sprintf( __( 'Perhaps you followed an out-of-date link? Please check out the <a href="%s">jobs we have currently available</a>.', 'jobman' ), get_page_link( $options['main_page'] ) ) . '&lt;/p&gt;';

    $page-&gt;post_content = $content;

    return array( $page );
}

$template = $options['templates']['job_list'];
jobman_add_shortcodes( $jobman_shortcodes );
jobman_add_field_shortcodes( $jobman_field_shortcodes );
$jobman_shortcode_job = $job;
$content .= do_shortcode( $template );
jobman_remove_shortcodes( array_merge( $jobman_shortcodes, $jobman_field_shortcodes ) );
$page = $job;
$page-&gt;post_title = $options['text']['job_title_prefix'] . $job-&gt;post_title;
$page-&gt;post_content = $content;
echo $page-&gt;post_content;

return array( $page );

}</code></pre>
<p>This retrieves the meta keys and then uses the existing job list template to show the results. If you are not using Job Manager, this is the part of the function that should help you to retrieve the meta values.</p>
<pre><code>$jobmeta = get_post_custom( $job-&gt;ID );

$jobdata = array();
foreach( $jobmeta as $key =&gt; $value ) {
    if( is_array( $value ) ){
        $jobdata[$key] = $value[0];
    } else {
        $jobdata[$key] = $value;
    }
}</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ekouk.com/insight/how-to-search-by-custom-meta-keys-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get your work motivation back</title>
		<link>http://www.ekouk.com/insight/how-to-get-your-work-motivation-back/</link>
		<comments>http://www.ekouk.com/insight/how-to-get-your-work-motivation-back/#comments</comments>
		<pubDate>Mon, 03 Dec 2012 14:27:31 +0000</pubDate>
		<dc:creator>Fox Geere</dc:creator>
				<category><![CDATA[Insight]]></category>

		<guid isPermaLink="false">http://www.ekouk.com/?p=2296</guid>
		<description><![CDATA[Ever find you are lacking motivation? Perhaps don&#8217;t get the work done that you need to get done? Or maybe just feel a little oppressed by your work space&#8230; especially on gloomy weather days? Thankfully I don&#8217;t really have that happen, but I do I find I can improve my mood and work flow by [...]]]></description>
			<content:encoded><![CDATA[<p>Ever find you are lacking motivation? Perhaps don&#8217;t get the work done that you need to get done? Or maybe just feel a little oppressed by your work space&#8230; especially on gloomy weather days?</p>
<p>Thankfully I don&#8217;t really have that happen, but I do I find I can improve my mood and work flow by doing a few things to my work space on a regular basis.</p>
<p>Today I thought I would share a few of those with you along with some extra bonus tips for generally feeling better and being better at what you do.<span id="more-2296"></span></p>
<p><strong>Bag it</strong><br />
First up, grab yourself a couple of bags. Get all the paper waste (hey, we need to be green) into one bag. Be sure to shred anything sensitive of course. Get that into the recycle box.</p>
<p><strong>Sweep away</strong><br />
Clean off anything you don&#8217;t need from your desk and in your drawers. Chuck those old sweets and promo toys away&#8230; you don&#8217;t use them anyway&#8230; well aside from that cool play putty you got, keep that for thinking time.</p>
<p><strong>Dusty dust dust</strong><br />
Take everything off and give it all a clean and polish. Just the smell of polish on your desk and computer equipment can be a super boost. If you are lazy, get something that smells nice and plonk it on your desk. Clean as much of the rest of your office / work space in the same way as clutter around you, even if not seen, can be a big downer. Do you really need that out of date calendar?</p>
<p><strong>Post it away</strong><br />
Now, like most you might have a number of post it notes around? If you are on a mac, open the stickies app and get your notes into those. If you are on windows find something you like to look of from <a href="http://www.google.co.uk/search?q=sticky+notes+windows&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a" target="_blank">Google</a> and do the same.</p>
<p><strong>The task at hand</strong><br />
Perhaps some of those notes are tasks that you need to do for clients? Then get yourself a free <a href="http://basecamphq.com/?referrer=DAVIDGEERE" target="_blank">basecamp</a> account (yup, that&#8217;s an affiliate link so I can track signups. Costs you nothing though). Get your projects in there, create some to do lists, add your tasks.</p>
<p><strong>Treat emails with love</strong><br />
When you get new emails in with questions and tasks, get them straight into basecamp before you do anything else. This keeps track of everything and means it is not in your head or cluttering up your email inbox with todo notes and tags. Try to upload any associated files into your projects so you don&#8217;t lose them.</p>
<p><strong>File it damnit!</strong><br />
Perhaps you deal with a lot of files for clients or personally? In that case grab yourself a free account with my new fav bit of software, <a href="https://www.dropbox.com/referrals/NTg2ODY3Mjk" target="_blank">DropBox</a>. That&#8217;s a special link that will give you some extra free space when you get your free account too. See, I am nice.</p>
<p><strong>It&#8217;s not a physical thing</strong><br />
You don&#8217;t just need to clean your desk space. Get your computer desktop space cleaned up too. Organise things into folders (perhaps that new drop box account?) and delete anything you don&#8217;t need from your desktop. I&#8217;d recommend a nice desktop background too&#8230; mine are generally of either something I really want (to motivate me to work in order to get it) or when I need a clear mind I put something nice and simple on from <a href="http://simpledesktops.com/browse/photos/" target="_blank">Simple Desktops</a>.</p>
<p><strong>Funky music</strong><br />
Now, for extra motivation why not get some nice new music from your service of choice, or the shops, itunes, spotify etc. I recommend some chill / ambient music&#8230; even classical. If you get music on that you don&#8217;t know and ideally has few or no words it can really help you focus and keep your head flowing.</p>
<p>Sometimes, a tidy of the desk is the best way to get cracking on some work rather than staring at the screen feeling down about what is sitting there waiting to be done. I learned this years ago and still to this day it keeps me going full speed on the work that I do.</p>
<p>Pssst here are a few of my spotify lists: <a href="http://open.spotify.com/user/davidgeere/playlist/4LYZBV0dEUkgXjhYEcmyak" target="_blank">Worky</a>, <a href="http://open.spotify.com/user/davidgeere/playlist/7w4544RUzCSUGV0FnenHxh" target="_blank">The Mirror Conspiracy</a>, <a href="http://open.spotify.com/user/davidgeere/playlist/6OYuUOzCeyEpeNYS6TBla0" target="_blank">Music for March</a> and <a href="http://open.spotify.com/user/davidgeere/playlist/1d0QzrugNIQYxXqYBWrCC1" target="_blank">Hollywood Chillout</a>.</p>
<p><strong>Bonus</strong><br />
One final extra tip&#8230; once you have done the above, especially the part about getting your tasks into a system like basecamp, jump into your email client, create a folder called &#8216;archive email&#8217; or similar and then move every single email currently sitting waiting in your inbox over to the new folder. Empty your inbox and treat all new emails that come in with some efficiency and process. An empty inbox is one of the most liberating feelings and can really help clear your mind. When was the last time your inbox was empty? Exactly. For extra points, grab yourself a copy of <a href="http://www.postbox-inc.com/" target="_self">PostBox</a> email client as it has some clever pin, todo, marking and search options that come in handy very often once you make use of them.</p>
<p><strong>Your ideas&#8230;</strong><br />
If you have any other tips for getting motivated feel free to share them in the comments below&#8230; hopefully I have helped at least one of you have a more productive and happy day.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekouk.com/insight/how-to-get-your-work-motivation-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to secure your website against CSRF</title>
		<link>http://www.ekouk.com/blog/how-can-you-secure-your-web-site-or-application-from-csrf-cross-site-request-forgery-attacks/</link>
		<comments>http://www.ekouk.com/blog/how-can-you-secure-your-web-site-or-application-from-csrf-cross-site-request-forgery-attacks/#comments</comments>
		<pubDate>Fri, 10 Aug 2012 10:55:40 +0000</pubDate>
		<dc:creator>lee</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.ekouk.com/?p=2288</guid>
		<description><![CDATA[CSRF explained What is CSRF and how does it work? CSRF, also known as XSRF, is short for Cross Site Request Forgery. OWASP’s definition for CSRF is this: A CSRF attack forces a logged-on victim’s browser to send a forged HTTP request, including the victim’s session cookie and any other automatically included authentication information, to [...]]]></description>
			<content:encoded><![CDATA[<h3>CSRF explained</h3>
<p>What is CSRF and how does it work? CSRF, also known as XSRF, is short for Cross Site Request Forgery. OWASP’s definition for CSRF is this:</p>
<blockquote><p>A CSRF attack forces a logged-on victim’s browser to send a forged HTTP request, including the victim’s session cookie and any other automatically included authentication information, to a vulnerable web application. This allows the attacker to force the victim’s browser to generate requests the vulnerable application thinks are legitimate requests from the victim.”</p></blockquote>
<p>So, what we need to perform a CSRF attack is this:</p>
<ul>
<li>A vulnerable website or application</li>
<li>A victim which is logged in at this website</li>
</ul>
<p>Let’s assume the vulnerable website <strong>www.example.com</strong> allows users to buy goods from their web shop. For the sake of simplicity, I’m using GET parameters to demonstrate the problem, however POST is affected likewise. The URL which a logged-in user has to visit to buy a product is the following:</p>
<pre>http://www.example.com/buy.php?productID=x&amp;amount=y</pre>
<p>By calling this URL, we submit the parameters <strong>productID </strong>and <strong>amount </strong>with the values <strong>x</strong>and <strong>y</strong> to the script. The script uses those parameters to process the order. A malicious attacker can now make a victim’s browser send a request to this website. This could be done by simply putting an image tag on a website that he controls:</p>
<pre>&lt;img src="http://www.example.com/buy.php?produktID=20&amp;amount=1000" /&gt;</pre>
<p>The victim’s browser doesn’t know that the referenced URL is not an image at all; it just sends a HTTP request to the given URL to retrieve whatever data there is. And here’s the trick: Because the victim is logged in at <strong>example.com</strong>, the browser sends all of the victim’s session and authorization data with the request. The victim has unknowingly sent a request to buy 1000 pieces of the product to <strong>example.com</strong>, and the website has no idea that the request is illegitimate – the order would be executed.</p>
<h4>Principles of CSRF protection</h4>
<p>So, how do we protect a website against CSRF attacks? The underlying principle is easy. A CSRF attack is based on the fact that the attacked website has no way of knowing if the data it receives actually came from a form on this website. What we need is a way to connect the two necessary HTTP requests – form request and form submission – so that we get this piece of information. We can then make sure that data we receive was really entered by a user on our website.</p>
<p>There are several ways to do this. The most common one, includes a hidden field in each form on the website. This hidden field is called <em>CSRF token</em>. The CSRF token is a random value that changes with each HTTP request sent. As soon as it is inserted in the website forms, it gets saved in the user’s session as well. When the form is submitted, the website checks if the submitted CSRF token equals the one saved in the session. If so, the request is legitimate. The token changes each time a page is requested, which means an attacker would have to guess the current token to successfully perform a CSRF attack.</p>
<p>Fortunately the common Frameworks have included methods for protecting your sites but you have to enable these features.  We&#8217;ve been developing sites recently with the need for higher security and  have been trawling the web to find some best practice guides.  Here&#8217;s what we found:-</p>
<fieldset><img class="wp-image-2298 alignright" title="Code Igniter" src="http://www.ekouk.com/wp-content/uploads/2012/08/imgres.jpeg" alt="" width="112" height="112" /></p>
<h4>CSRF Protection in CodeIgniter</h4>
<ul>
<li><a title="Tuts Plus Guide to CSRF" href="http://net.tutsplus.com/tutorials/php/protect-a-codeigniter-application-against-csrf/">http://net.tutsplus.com/tutorials/php/protect-a-codeigniter-application-against-csrf/</a></li>
<li><a title="CSRF Protection in CodeIgniter" href="http://aymsystems.com/ajax-csrf-protection-codeigniter-20">http://aymsystems.com/ajax-csrf-protection-codeigniter-20</a></li>
<li><a title="CSRF Protection in CodeIgniter" href="http://aymsystems.com/ajax-csrf-protection-codeigniter-20">http://www.beheist.com/index.php/en/blog/csrf-protection-in-codeigniter-2-0-a-closer-look </a></li>
</ul>
</fieldset>
<fieldset><img class=" wp-image-2301 alignright" title="Yii Framework" src="http://www.ekouk.com/wp-content/uploads/2012/08/imgres-1.jpeg" alt="" width="96" height="96" /></p>
<h4>CSRF Protection in Yii</h4>
<ul>
<li><a title="CSRF Protection in Yii" href="http://www.yiiframework.com/wiki/274/how-to-validate-csrf-token-with-session/">http://www.yiiframework.com/wiki/274/how-to-validate-csrf-token-with-session/</a></li>
<li><a title="Yii Security" href="http://www.yiiframework.com/doc/guide/1.1/en/topics.security">http://www.yiiframework.com/doc/guide/1.1/en/topics.security</a></li>
</ul>
</fieldset>
<fieldset><img class=" wp-image-2303 alignright" title="Zend" src="http://www.ekouk.com/wp-content/uploads/2012/08/imgres-2.jpeg" alt="" width="75" /></p>
<h4>CSRF Protection in Zend</h4>
<ul>
<li><a title="CSRF Protection in Zend" href="http://stuntsnippets.com/zend-framework-csrf-protection/">http://stuntsnippets.com/zend-framework-csrf-protection/</a></li>
<li><a title="ZEND CSRF Protection Guide" href="http://codeutopia.net/blog/2008/10/16/how-to-csrf-protect-all-your-forms/">http://codeutopia.net/blog/2008/10/16/how-to-csrf-protect-all-your-forms/</a></li>
</ul>
</fieldset>
<fieldset>
<h4>CSRF Protection in WordPress &amp; Magento</h4>
<p>Many of our sites use WordPress and Magento, fortunately both of these platforms are now very secure BUT..and there is always a hairy but, vulnerabilities do exist.  ALWAYS change your Magento default admin login URL and DONT disable the secret key on the admin URL.  If you use WordPress do take a look at these:-<a href="http://www.ekouk.com/wp-content/uploads/2012/08/imgres-3.jpeg"><img class="alignright  wp-image-2311" title="Magento" src="http://www.ekouk.com/wp-content/uploads/2012/08/imgres-3.jpeg" alt="" width="100" height="100" /></a><img class="alignright  wp-image-2310" title="WordPress" src="http://www.ekouk.com/wp-content/uploads/2012/08/grey-xl.png" alt="" width="100" /></p>
<ul>
<li><a title="Harden your WordPress Installation" href="http://wordpress.org/extend/plugins/bulletproof-security/">WordPress Bulletproof security plugin</a></li>
<li><a title="WP Security plugin" href="http://wordpress.org/extend/plugins/wp-sentinel/">http://wordpress.org/extend/plugins/wp-sentinel/</a></li>
</ul>
</fieldset>
<fieldset>
<h4><img class="alignright size-full wp-image-2313" title="php" src="http://www.ekouk.com/wp-content/uploads/2012/08/php.png" alt="" width="100" height="53" />CSRF Protection in plain ol PHP</h4>
<p>If you&#8217;re creating systems in straight PHP  read this article.  It does take a bit of time to get your head around and incorporate into your code so you should be looking to make the step towards using Frameworks which have all this stuff figured out already.</p>
<ul>
<li><a href="http://tournasdimitrios1.wordpress.com/2012/02/16/preventing-cross-site-request-forgeries-in-php/">http://tournasdimitrios1.wordpress.com/2012/02/16/preventing-cross-site-request-forgeries-in-php/</a></li>
</ul>
</fieldset>
<h4>Vulnerability Testing</h4>
<p>When costing a development project, always allow more time than you think for the damned IE versions AND if security is important incorporate some days for vulnerability testing.  One thing is for sure, a fool and his money will soon be partying.  Make sure that isn&#8217;t your money and developers time trying to patch up insecure code that should have been done properly in the first place.  You know who you are people.  Budgets are always tight but site downtime and the loss of reputation can cost you more than the extra couple of days that should have been spent.</p>
<p>If you want to test your site take a look here, this article provides some useful info: <a title="CSRF Guide" href="http://blog.csdn.net/zhonggonglou/article/details/7538702">http://blog.csdn.net/zhonggonglou/article/details/7538702</a>.</p>
<h4>Free Vulnerability Scanners</h4>
<p>There are a range of free tools out there which can give  insights into possible exploits on your site, they will mostly want you to upgrade to the Pro versions.  Some of the decent scanners give a trial period,  do use them, whilst the cost will be prohibitive for small developers, you know how to  make the most out of your many email addresses. <img src='http://www.ekouk.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   This section deserves another post in its own right but for now check out:-</p>
<ul>
<li><a title="Qualys - The Big Daddy" href="https://www.qualys.com/enterprises/qualysguard/web-application-scanning/">https://www.qualys.com/enterprises/qualysguard/web-application-scanning/</a></li>
<li><a title="vulnerability-scanner" href="http://www.rapid7.com/vulnerability-scanner.jsp">http://www.rapid7.com/vulnerability-scanner.jsp</a></li>
<li><a title="EEYE scanner" href="http://www.eeye.com/products/retina/community">http://www.eeye.com/products/retina/community</a></li>
</ul>
<p>Hope that provides some decent information and food for thought for small developers.  Credit to <a title="Bastian Heist" href="http://www.beheist.com/">Bastian Heist</a> for the informative introduction to this article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekouk.com/blog/how-can-you-secure-your-web-site-or-application-from-csrf-cross-site-request-forgery-attacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Together Geeks &amp; Creatives can change the world</title>
		<link>http://www.ekouk.com/blog/people-working-together-can-move-mountains-get-geeks-and-creatives-working-together-and-we-can-change-the-world/</link>
		<comments>http://www.ekouk.com/blog/people-working-together-can-move-mountains-get-geeks-and-creatives-working-together-and-we-can-change-the-world/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 14:25:47 +0000</pubDate>
		<dc:creator>lee</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.ekouk.com/?p=2264</guid>
		<description><![CDATA[People working together can move mountains. Get geeks and creatives working together and we can change the world. Freelance techies and creatives can make a perfectly decent living working from home. It isn&#8217;t a dynamic way to work, or an inspiring one, or even a fun one, but it works. To a degree. Because it [...]]]></description>
			<content:encoded><![CDATA[<p>People working together can move mountains. Get geeks and creatives working together and we can change the world.</p>
<p>Freelance techies and creatives can make a perfectly decent living working from home.</p>
<p>It isn&#8217;t a dynamic way to work, or an inspiring one, or even a fun one, but it works. To a degree.</p>
<p>Because it soon becomes apparent that the more dynamic and successful these individuals are, they sooner they find this way of working limiting. Same clients, same type of work, and learning new stuff is kept to a minimum. Which means working this way soon becomes stifling, repetitive and, well, rather boring.</p>
<p>And it isn&#8217;t about the money. It’s more a case of wanting &#8211; needing &#8211; to work in an environment that crackles with energy. <strong>Creates great ideas</strong>. Solves the unsolvable. And lets you <strong>enjoy doing it</strong>.</p>
<p>And this ends up as being <strong>better for the client</strong>, too. An OK idea gets bounced around and becomes a great one. One answer becomes a complete solution. Answering the brief can mean a mass of sharp, targeted ideas that blow everyone away.</p>
<p>OK, so working together works. But what next? How can we bring this talent together? And where can we do it?</p>
<p>The answer is our new offering, The <strong>Sussex E-business Centre</strong> in Shoreham. A place where individuals with specific talents can work in our new office space and remain independent, or work together in small teams if their project demands it.</p>
<p>People can now share ideas. Pass on contacts. Learn off each other and even employ each other. Already we’ve seen friendships develop and partnerships forged. And clients are experiencing a fresh, <strong>dynamic, positive environment</strong> where there is a rich concentration of talent. And they like the fact we have a board room / meeting room, a professional video/photographic studio and a games room.</p>
<p>Already the centre is bearing fruit with several of us in talks regarding some highly lucrative contracts brought in through this new networking initiative. We’re working individually and as a team. We’re all working more productively. And we’re all liking it.</p>
<p>If you would like to find out more about joining our office space, or to see what we could do for your business, call Guy on 0844 357 4200 or Lee on 01273 455706</p>
<p>We look forward to hearing from you soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekouk.com/blog/people-working-together-can-move-mountains-get-geeks-and-creatives-working-together-and-we-can-change-the-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great new JQuery Carousel</title>
		<link>http://www.ekouk.com/blog/great-new-jquery-carousel/</link>
		<comments>http://www.ekouk.com/blog/great-new-jquery-carousel/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 15:10:49 +0000</pubDate>
		<dc:creator>lee</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.ekouk.com/?p=2169</guid>
		<description><![CDATA[Have a look at the effects possible with this script.  Will be using this in our next project.  I see some watches appearing on the conveyor belt. http://fredhq.com/projects/roundabout#/demos]]></description>
			<content:encoded><![CDATA[<p>Have a look at the effects possible with this script.  Will be using this in our next project.  I see some watches appearing on the conveyor belt.</p>
<p><a title="Fred HQ" href="http://fredhq.com/projects/roundabout#/demos">http://fredhq.com/projects/roundabout#/demos</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekouk.com/blog/great-new-jquery-carousel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Putting google into perspective</title>
		<link>http://www.ekouk.com/blog/putting-google-into-perspective/</link>
		<comments>http://www.ekouk.com/blog/putting-google-into-perspective/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 07:50:14 +0000</pubDate>
		<dc:creator>lee</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Infographic]]></category>

		<guid isPermaLink="false">http://www.ekouk.com/?p=1615</guid>
		<description><![CDATA[Googles advertising revenue, infographic. Googles advertising revenue, infographic.]]></description>
			<content:encoded><![CDATA[<p>Googles advertising revenue, infographic.</p>
<p><a href="http://www.ekouk.com/wp-content/uploads/2011/12/google-numbers-686x3906.jpg"><img class="alignnone size-full wp-image-3072" title="google-numbers-686x3906" src="http://www.ekouk.com/wp-content/uploads/2011/12/google-numbers-686x3906.jpg" alt="" width="686" height="3906" /></a>Googles advertising revenue, infographic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekouk.com/blog/putting-google-into-perspective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brighton 10k</title>
		<link>http://www.ekouk.com/blog/brighton-10k/</link>
		<comments>http://www.ekouk.com/blog/brighton-10k/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 14:22:36 +0000</pubDate>
		<dc:creator>lee</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.ekouk.com/?p=1585</guid>
		<description><![CDATA[Sunday 20th November.  Fabulous sunny morning on Brighton seafront.  Gaius &#38; Liam managed PB&#8217;s of 44:41 minutes each, crossing the line hand in hand   Lee achieved 50 mins dead after an all out forest gump sprint at the end.  Michelle came in at 50:29 even with a recently broken toe &#8211; well done that [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-1589" title="Pre race smiles" src="http://new.ekouk.com/wp-content/uploads/2011/11/Eko10CrewBtn-150x150.jpg" alt="" width="150" height="150" />Sunday 20th November.  Fabulous sunny morning on Brighton seafront.  Gaius &amp; Liam managed PB&#8217;s of 44:41 minutes each, crossing the line hand in hand <img src='http://www.ekouk.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />    Lee achieved 50 mins dead after an all out forest gump sprint at the end.  Michelle came in at 50:29 even with a recently broken toe &#8211; well done that lass.  Sue also set a PB of under an hour @ 59:36.  Cathy just missed the hour by a minute and Mick had to stop for wee and paused his stop watch so his 58mins could have been better.</p>
<p>Great day all round, race was won at 29 mins. Woah, we have some serious training to do to catch up with him.</p>
<p>&nbsp;</p>
<p><img class="size-full wp-image-1590" title="Eko10kCrew" src="http://new.ekouk.com/wp-content/uploads/2011/11/Eko10kCrew.jpg" alt="" width="595" height="463" /><br />
<img class="size-full wp-image-1591" title="Eko10kCrewBack" src="http://new.ekouk.com/wp-content/uploads/2011/11/Eko10kCrewBack.jpg" alt="" width="595" height="443" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekouk.com/blog/brighton-10k/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;AWS Rolling Thunder&#8221; in CentOS</title>
		<link>http://www.ekouk.com/blog/aws-rolling-thunder-in-centos/</link>
		<comments>http://www.ekouk.com/blog/aws-rolling-thunder-in-centos/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 18:10:42 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[amazon web services]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[rolling thunder]]></category>
		<category><![CDATA[s3]]></category>

		<guid isPermaLink="false">http://www.ekouk.com/?p=1509</guid>
		<description><![CDATA[Coder Chris has posted a great guide on using Amazon S3 as a source code file-store and syncing code updates out to instances on restart. This has a funky name &#8220;Rolling Thunder&#8221;. Quote: I&#8217;ve been using a common technique to deploy source code updates to my Amazon EC2 instances for some time now, which makes [...]]]></description>
			<content:encoded><![CDATA[<p>Coder Chris has posted a great guide on using Amazon S3 as a source code file-store and syncing code updates out to instances on restart. This has a funky name &#8220;Rolling Thunder&#8221;.</p>
<p><strong>Quote:</strong> <em>I&#8217;ve been using a common technique to deploy source code updates to my Amazon EC2 instances for some time now, which makes use of S3 as a central source code file-store, and syncs updates out to instances on a restart.</em></p>
<p>I didn&#8217;t however know that this technique had a name: Rolling Thunder (Thanks AWS Tech Summit)</p>
<p>As it was such a cool buzz wordy term, I thought I&#8217;d post a guide to how I achieve Rolling Thunder on AWS using CentOS Linux based instances (though this should work with any *NIX variant) in case anyone new to the game wanted a how-to.</p>
<p>Read more over on Chris&#8217;s blog here: <a href="http://www.coderchris.com/aws/aws-rolling-thunder-in-centos-linux/2011/04/11">http://www.coderchris.com/aws/aws-rolling-thunder-in-centos-linux/2011/04/11</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekouk.com/blog/aws-rolling-thunder-in-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Will you be buying a glasses-free 3D laptop?</title>
		<link>http://www.ekouk.com/blog/will-you-be-buying-a-glasses-free-3d-laptop/</link>
		<comments>http://www.ekouk.com/blog/will-you-be-buying-a-glasses-free-3d-laptop/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 12:37:45 +0000</pubDate>
		<dc:creator>Nic</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[glasses-free 3d]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.ekouk.com/?p=1503</guid>
		<description><![CDATA[Over the last couple of years there has been a lot of hype surrounding 3d displays. They have been placed in cinemas, televisions, laptops and even handheld devices! The main draw back so far has been the need for special glasses in order to view the 3d display. More recent technology is seeing the need [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last couple of years there has been a lot of hype surrounding 3d displays. They have been placed in cinemas, televisions, laptops and even handheld devices! The main draw back so far has been the need for special glasses in order to view the 3d display. More recent technology is seeing the need for glasses made obsolete. A recent gadget that bought this technology to light was the Nintendo 3DS. However this &#8220;glasses-free&#8221; display is popping up all over the place now. Even our mobile smart phones are starting to catch on to the 3D trend.</p>
<p>This January, Toshiba announced the world&#8217;s first glasses-free 3D laptop, the Qosmio F750. With a £1300 price tag, it also boasts some fairly capable hardware. An Intel Core i7 processor, Nvidia Geforce GT540M graphics, 640GB (7200rpm) HDD, 6GB DDR3 (1333MHz) RAM, &#8220;distortion-free&#8221; Harmon Kardon speakers, a BDXL drive and a USB 3.0 port.</p>
<p>Initial reviews look promising and so do some of the features. The screen will be able to display both 2D and 3D at the same time in different windows. The built-in HD camera is able to track the users eye movement so that the 3D effect will match the position you are viewing from.</p>
<p>Toshiba&#8217;s Qosmio F750 will be available in the UK in August for around £1300. Will it prove to be a success in glasses-free 3D entertainment? Or is it just another gadget fad?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekouk.com/blog/will-you-be-buying-a-glasses-free-3d-laptop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
