<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>SEO Crusade News</title>
    <link>http://www.seocrusade.com/news/</link>
    <description>SEO Crusade Industry News</description>
    <language>en-us</language>           
    <generator>Nucleus CMS v3.23</generator>
    <copyright>©</copyright>             
    <category>Weblog</category>
    <docs>http://backend.userland.com/rss</docs>
    <image>
      <url>http://www.seocrusade.com/news//nucleus/nucleus2.gif</url>
      <title>SEO Crusade News</title>
      <link>http://www.seocrusade.com/news/</link>
    </image>
    <item>
 <title>Google release CSE</title>
 <link>http://www.seocrusade.com/news/index.php?itemid=46</link>
<description><![CDATA[Google are widening their search engine power with the release of CSE (or Custom Search Engine). So, whats all the fuss about? You could always have a custom search facility on your web site that was powered by Google, but now you can list who/whatever you like.<br />
<br />
By example, before CSE you could only display pages from your own web site. Now you can display pages from any web sites you want. You can also order these web sites so your web site/partners web site comes top.<br />
<br />
The beauty of this is that if a search is not going to give a result from your own web site, then your results will always give some sort of result.<br />
<br />
On top of this, you can either have the results displayed by Google, or you can include the results on your web site within an IFrame.<br />
<br />
Benefits: -<br />
<b>You can customize the look of the results displayed</b><br />
<b>You can order the results to force certain URLs to the top of the results</b><br />
<b>You can filter results out by expression or by url</b><br />
<b>You dont need a crawler for your own web site</b><br />
<br />
Drawbacks:-<br />
<b>If you are a profit organisation, then you have to display Ads with the results</b><br />
<b>The results aren't going to help your rankings in Google because Google provided the listings in the first place</b><br />
<br />
So, at first glance the benefits outway the cons. This is a great move by Google and will help them to capture more of the vertical search market.<br />
<br />
If you want to read more about CSE then check out Matt Cutt's blog at <a href="http://www.mattcutts.com/blog/review-custom-search-engine/">http://www.mattcutts.com/blog/review-custom-search-engine/</a><br />
<br />
If you want to use the product then go to <a href="http://www.google.com/coop/cse/">http://www.google.com/coop/cse/</a> and sign-up. Ok. you'll need to have those all important web skills, but its pretty straight forward.<br />
<br />
If any of you out there have used it, please leave your comments so other people can see what its like.]]></description>
 <category>Development</category>
<comments>http://www.seocrusade.com/news/index.php?itemid=46</comments>
 <pubDate>Fri, 27 Oct 2006 16:25:45 +0100</pubDate>
</item><item>
 <title>AJAX Security</title>
 <link>http://www.seocrusade.com/news/index.php?itemid=24</link>
<description><![CDATA[<h3>Asynchronous Javascript And Xml Security</h3><br />
<abbr title="Asynchronous Javascript And XML">AJAX</abbr> is becoming more popular as the web demands seamless use, although security issues come to the forefront as a result.<br />
<br />
Security should always be at the forefront of any web application. Especially when databases containing user information are concerned. Whilst <abbr title="Asynchronous Javascript And XML">AJAX</abbr> is delivering some of the best interactive web experiences in years, security between client and server now becomes an issue.<br />
<br />
Ajax essentially can produce many threads of communication between the client and the server at the same time. One click on an <abbr title="Asynchronous Javascript And XML">AJAX</abbr> enabled web page could produce any number of communication threads to the server from the client.<br />
<br />
With the use of PHP, <abbr title="Asynchronous Javascript And XML">AJAX</abbr>can be implemented in a more secure fashion, although planning is still the most vital aspect to developing any secure <abbr title="Asynchronous Javascript And XML">AJAX</abbr> web application (as well as testing of course).<br />
<br />
<h3>Producing Secure <abbr title="Asynchronous Javascript And XML">AJAX</abbr> PHP web applications simply</h3><br />
One of the simplest methods of securing <abbr title="Asynchronous Javascript And XML">AJAX</abbr> altogether is to use SSL certificates on your web server. Once you have a secure web server configuration, implement session cookies within your PHP script(s) and validate the session every time an <abbr title="Asynchronous Javascript And XML">AJAX</abbr> request is made. Then ensure all of your <abbr title="Asynchronous Javascript And XML">AJAX</abbr> requests are passed to the secure server (https://).<br />
<br />
With SSL certificates any information passed between the client (web browser) and the server (web server) is encrypted and, it has been claimed, cannot be broken once the SSL connection is established. Another alternative SSL provider is <a href="http://www.cacert.org/" title="Free Secure Certificates">CACERT</a>. They provide free SSL certificates to community.<br />
<br />
The problem with this is scalability. What if you are a small business and don’t have the resources to employ an SSL capable web server, the technical ability to implement SSL correctly or the cash to purchase these services? Well at this stage of the game you will be stuck if you want to implement <abbr title="Asynchronous Javascript And XML">AJAX</abbr> on your web site with a near to nothing budget.<br />
<br />
This doesn’t help the uptake of <abbr title="Asynchronous Javascript And XML">AJAX</abbr> for web applications and is already slowing the deployment of <abbr title="Asynchronous Javascript And XML">AJAX</abbr> to the majority of web sites. It is surprising how many web sites out there are still stuck in the 90’s.<br />
<br />
Why <abbr title="Asynchronous Javascript And XML">AJAX</abbr>? The reason for <abbr title="Asynchronous Javascript And XML">AJAX</abbr>’s increased deployment is the advent of web2.0. With web2.0 your web site is supposed to be conversant and highly interactive. This is not just a fad of the techies within web development, but realised directly as a result of people using the web. People visiting your web site now expect to be entertained and involved. Even the most boring of web sites can now provide interaction for the site visitor. Like predictive text on a mobile phone, Google have Google Suggest (<a href="http://www.google.com/webhp?complete=1&hl=en">http://www.google.com/webhp?complete=1&hl=en</a>), just one example of an interactive web 2.0 application.<br />
<br />
<h3>Producing Secure <abbr title="Asynchronous Javascript And XML">AJAX</abbr> PHP web applications thoroughly</h3><br />
Ok, so implementation of SSL and Sessions can greatly improve your <abbr title="Asynchronous Javascript And XML">AJAX</abbr>security, but you can go even further.<br />
<br />
Even if you don’t have SSL certificates, you can improve your <abbr title="Asynchronous Javascript And XML">AJAX</abbr> security with PHP by hashing your communication strings between <abbr title="Asynchronous Javascript And XML">AJAX</abbr> and the SERVER. Using a hash algorithm you can produce a system similar to SSL, without doing all the server stuff. Although recommendations still remain with obtaining a SSL certificate for your web application.<br />
<br />
All data between the client and the server can be serialised using a proprietary hash algorithm. With the additional use of Sessions within PHP you can then start to see how robust this type of solution can become.<br />
<br />
For information about producing your own hash algorithms check out the phpclass “class hash crypt” on <a href="http://www.phpclasses.org/browse/package/2982.html">http://www.phpclasses.org/browse/package/2982.html</a>. <br />
<br />
Continuing with hashing strings; when a client starts a session, distribute a unique key to the client and store that key on the server. The client-side script can then include this key in the hash algorithm and serialise the communication. The server would then pick up the communication, check the session exists, unpack the communication using the privately stored key and then read the data.<br />
<br />
These keys can then be changed as each request is made. One concern with this method is that as <abbr title="Asynchronous Javascript And XML">AJAX</abbr> is based on asynchronous communication, several threads of communication could be started at once. Changing the key like the above example would fail. If the client did not receive the amended key prior to sending the next/concurrent thread, then the server API would not be able to unpack the data. Unless the client waited until the server responded to each request, therefore updating the key prior to re-communicating. There are still problems here too. The list of problems with <abbr title="Asynchronous Javascript And XML">AJAX</abbr> security goes on and on.<br />
<br />
Here are a few pointers for developing <abbr title="Asynchronous Javascript And XML">AJAX</abbr> and PHP: -<br />
<strong>1) Never use GET when communicating between client & server.</strong><br />
<strong>2) Session data is transmitted from the client every time a request to the server is made. Therefore, without SSL your session cookie data is visible if sniffed.</strong><br />
<strong>3) Requests by the XmlHttpRequest object can only be made to the originating server. Although don’t forget to do the server checks anyway. Some people also claim that XSS (Cross Site Scripting) is possible using XmlHttpRequest.</strong><br />
<strong>4) Do as much authentication on the server side as possible without deprecating performance. Check all the obvious, e.g. user agent is still the same.</strong><br />
<strong>5) Instruct the client to place certain information in the header of the XmlHttpRequest and see if the requests to the server match or not.</strong><br />
<strong>6) Mission critical, personal or business related data should be kept outside of the <abbr title="Asynchronous Javascript And XML">AJAX</abbr> loop unless you are 100% certain there are no security flaws.</strong><br />
<br />
As <abbr title="Asynchronous Javascript And XML">AJAX</abbr> has been around for some time now, there has been significant development into making <abbr title="Asynchronous Javascript And XML">AJAX</abbr> secure. Although holes are still being found.<br />
<br />
The following are a couple of resources relating to technology that could help when developing a secure <abbr title="Asynchronous Javascript And XML">AJAX</abbr> web application.<br />
Description and Examples of JSON - <a href="http://en.wikipedia.org/wiki/JSON">http://en.wikipedia.org/wiki/JSON</a><br />
Home Page of XOAD - <a href="http://wiki.xoad.org/index.php?title=Wiki_Home">http://wiki.xoad.org/index.php?title=Wiki_Home</a><br />
Download Page of XOAD - <a href="http://wiki.xoad.org/index.php?title=Download">http://wiki.xoad.org/index.php?title=Download</a><br />
Home Page of SAJA - <a href="http://saja.sourceforge.net/">http://saja.sourceforge.net/</a><br />
Download Page of SAJA - <a href="http://sourceforge.net/project/showfiles.php?group_id=156741">http://sourceforge.net/project/showfiles.php?group_id=156741</a><br />
<br />
<h3>Checking your AJAX security</h3><br />
One of the most expensive aspects when developing a secure web application might be security.<br />
<br />
If you are developing a web application that stores personal, business or mission critical information, then you no doubt need to provide security.<br />
<br />
Security should be at the forefront of any project that has any of the above elements and if you are employing <abbr title="Asynchronous Javascript And XML">AJAX</abbr> technology, then your security budget may just have to treble.<br />
<br />
Even if you have developed your <abbr title="Asynchronous Javascript And XML">AJAX</abbr> application and are pretty certain of its integrity and security, it would be well worth checking it.<br />
<br />
Denimgroup have released a product for the .NET platform called Sprajax that has been published open source and can be downloaded from <a href="http://www.denimgroup.com/Sprajax/Default.aspx">http://www.denimgroup.com/Sprajax/Default.aspx</a>. The only downfall for Sprajax is that it is platform dependant (.NET). Hopefully a cross platform (PHP) version will be available soon.<br />
<br />
It is helpful to follow some of the security companies too, as they are mostly at the forefront of these issues and some of them release their findings to the general public.<br />
<br />
The <a href="http://www.webappsec.org/">http://www.webappsec.org/</a> is a great resource, although it is difficult for a novice to identify bugs found in <abbr title="Asynchronous Javascript And XML">AJAX</abbr> and other web apps. Rather technical too.<br />
<br />
CNET is a great worldwide resource at<br />
<a href="http://news.com.com/The+security+risk+in+Web+2.0/2100-1002_3-6099228.html">http://news.com.com/The+security+risk+in+Web+2.0/2100-1002_3-6099228.html</a><br />
<br />
<strong>And of course, keep your eyes on this post too.</strong>]]></description>
 <category>Development</category>
<comments>http://www.seocrusade.com/news/index.php?itemid=24</comments>
 <pubDate>Thu, 31 Aug 2006 17:29:25 +0100</pubDate>
</item><item>
 <title>Using SERVER variables in PHP</title>
 <link>http://www.seocrusade.com/news/index.php?itemid=8</link>
<description><![CDATA[SERVER variables in PHP come in very handy when producing dynamic sites that may move from domain to domain. It is known that absolute links are more sturdy and search engine friendly than relative links.<br />
<br />
Ok, theres a question: -<br />
Q: Whats the difference between a relative link and an absolute link?<br />
A: An absolute link will include the whole path to the object (http://www.seocrusade.com/marketing). Whereas a relative link will only include the necessary path info to the object (../marketing).<br />
<br />
Right. So now we have established the difference between relative and absolute, the problem you may face is that by using absolute links, you will not be able to move your code between domains without changing the absolute links....<br />
<br />
For example, you have a website hosted on www.domaina.com and want to move it to www.domainb.com, but all the link are written http://www.domaina.com in the code. Rather than doing a find and replace on all your domaina to domainb, write your code using $_SERVER['HTTP_HOST']!<br />
<br />
for example http:<?php echo $_SERVER['HTTP_HOST']; ?>.<br />
<br />
Ok, so you may (should) be doing this anyway, but if you're not and your dynamic code is categorised by directory structure, then this is the answer.<br />
<br />
Your code can then move from domaina to domainb without any code changes. This only works if your code is categorised by directory structure and not all within the one page.]]></description>
 <category>Development</category>
<comments>http://www.seocrusade.com/news/index.php?itemid=8</comments>
 <pubDate>Tue, 22 Aug 2006 17:39:51 +0100</pubDate>
</item>
  </channel>
</rss>