<?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; Web Servers</title>
	<atom:link href="http://www.simonwhatley.co.uk/tag/web-servers/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>Secure Your Application &#8211; PCI DSS Specifications</title>
		<link>http://www.simonwhatley.co.uk/secure-your-application-pci-dss-specifications</link>
		<comments>http://www.simonwhatley.co.uk/secure-your-application-pci-dss-specifications#comments</comments>
		<pubDate>Mon, 26 Jan 2009 11:19:37 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Adobe ColdFusion]]></category>
		<category><![CDATA[American Express]]></category>
		<category><![CDATA[anti-virus software]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[BlueDragon]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[ColdFusion Administrator]]></category>
		<category><![CDATA[company processing]]></category>
		<category><![CDATA[compliance]]></category>
		<category><![CDATA[control measures]]></category>
		<category><![CDATA[Data Security Standard]]></category>
		<category><![CDATA[database server]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Discover Financial Services]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JCB International]]></category>
		<category><![CDATA[Manitoba]]></category>
		<category><![CDATA[Mastercard Worldwide]]></category>
		<category><![CDATA[Payment Card Industry]]></category>
		<category><![CDATA[Payment Card Industry Security Standards Council]]></category>
		<category><![CDATA[payment card processing]]></category>
		<category><![CDATA[Payment Processors]]></category>
		<category><![CDATA[PCI DSS]]></category>
		<category><![CDATA[public networks]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[raw processing]]></category>
		<category><![CDATA[RDBMS]]></category>
		<category><![CDATA[regulations]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[secure systems]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Security Standards Council]]></category>
		<category><![CDATA[security systems]]></category>
		<category><![CDATA[Server Side]]></category>
		<category><![CDATA[software developers]]></category>
		<category><![CDATA[software releases]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SSC]]></category>
		<category><![CDATA[the Council]]></category>
		<category><![CDATA[Visa]]></category>
		<category><![CDATA[Visa Inc .]]></category>
		<category><![CDATA[web application]]></category>
		<category><![CDATA[web application developers]]></category>
		<category><![CDATA[web applications]]></category>
		<category><![CDATA[web code]]></category>
		<category><![CDATA[Web Servers]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=1785</guid>
		<description><![CDATA[PCI DSS stands for Payment Card Industry Data Security Standard, and is a worldwide security standard assembled by the Payment Card Industry Security Standards Council (PCI SSC). The PCI security standards are technical and operational requirements that were created to help organizations that process card payments prevent credit card fraud, hacking and various other security vulnerabilities and threats. The standards apply to all organizations that store, process or transmit cardholder data – with guidance for software developers and manufacturers of applications and devices used in those transactions. A company processing, storing, or transmitting cardholder data must be PCI DSS compliant.]]></description>
			<content:encoded><![CDATA[<p>PCI DSS stands for <a href="https://www.pcisecuritystandards.org/" title="Payment Card Industry Data Security Standard website" target="_blank" rel="nofollow">Payment Card Industry Data Security Standard</a>, and is a worldwide security standard assembled by the Payment Card Industry Security Standards Council (<abbr title="Payment Card Industry">PCI</abbr> <abbr title="Security Standards Council">SSC</abbr>). The <abbr title="Payment Card Industry">PCI</abbr> security standards are technical and operational requirements that were created to help organizations that process card payments prevent credit card fraud, hacking and various other security vulnerabilities and threats. The standards apply to all organizations that store, process or transmit cardholder data – with guidance for software developers and manufacturers of applications and devices used in those transactions. A company processing, storing, or transmitting cardholder data must be <abbr title="Payment Card Industry">PCI</abbr> <abbr title="Data Security Standard">DSS</abbr> compliant.</p>
<p><a href="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2009/01/payment-card-data.png"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2009/01/payment-card-data.png" alt="Types of Data on a Payment Card" title="Types of Data on a Payment Card" width="600" height="255" class="aligncenter size-full wp-image-1815" /></a></p>
<p>The <abbr title="Payment Card Industry">PCI</abbr> <abbr title="Security Standards Council">SSC</abbr> (<q>Council</q>) is responsible for managing the security standards, while compliance with the <abbr title="Payment Card Industry">PCI</abbr> set of standards is enforced by the founding members of the Council: <a href="http://www.americanexpress.com/datasecurity" title="American Express" target="_blank" rel="nofollow">American Express</a>, <a href="http://www.discovernetwork.com/fraudsecurity/disc.html" title="Discover Financial Services" target="_blank" rel="nofollow">Discover Financial Services</a>, <a href="http://www.jcb-global.com/english/pci/index.html" title="JCB International" target="_blank" rel="nofollow">JCB International</a>, <a href="http://www.mastercard.com/sdp" title="MasterCard Worldwide" target="_blank" rel="nofollow">MasterCard Worldwide</a> and <a href="http://www.visa.com/cisp" title="Visa" target="_blank" rel="nofollow">Visa Inc</a>. Non-compliant companies who maintain a relationship with one or more of the card brands, either directly or through an acquirer risk losing their ability to process credit card payments and being audited and/or fined.</p>
<p>All in-scope companies must validate their compliance annually. This validation can be conducted by Qualified Security Assessors, i.e. companies that have completed a <a href="https://www.pcisecuritystandards.org/qsa_asv/become_qsa.shtml" title="PCI: Becoming a Qualified Security Assessor" target="_blank" rel="nofollow">three-step certification process</a> by the <abbr title="Payment Card Industry">PCI</abbr> <abbr title="Security Standards Council">SSC</abbr> which recognises them as being qualified to assess compliance to the <abbr title="Payment Card Industry">PCI</abbr> <abbr title="Data Security Standard">DSS</abbr> standard. However, smaller companies have the option to use a <a href="https://www.pcisecuritystandards.org/saq/index.shtml" title="PCI Self-Assessment Questionnaire" target="_blank" rel="nofollow">Self-Assessment Questionnaire</a>. Whether this questionnaire needs to be validated by a <abbr title="Qualified Security Assessors">QSA</abbr> depends on the requirements of the card brands in that merchant&#8217;s region.</p>
<p>The current version of the standard specifies 12 requirements for compliance, organised into 6 logically related groups, which are called &#8220;control objectives.&#8221;</p>
<ol>
<li>Build and Maintain a Secure Network
<ul>
<li>Requirement 1: Install and maintain a firewall configuration to protect cardholder data</li>
<li>Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters</li>
</ul>
</li>
<li>Protect Cardholder Data
<ul>
<li>Requirement 3: Protect stored cardholder data</li>
<li>Requirement 4: Encrypt transmission of cardholder data across open, public networks</li>
</ul>
</li>
<li>Maintain a Vulnerability Management Program
<ul>
<li>Requirement 5: Use and regularly update anti-virus software</li>
<li>Requirement 6: Develop and maintain secure systems and applications</li>
</ul>
</li>
<li>Implement Strong Access Control Measures
<ul>
<li>Requirement 7: Restrict access to cardholder data by business need-to-know</li>
<li>Requirement 8: Assign a unique ID to each person with computer access</li>
<li>Requirement 9: Restrict physical access to cardholder data</li>
</ul>
</li>
<li>Regularly Monitor and Test Networks
<ul>
<li>Requirement 10: Track and monitor all access to network resources and cardholder data</li>
<li>Requirement 11: Regularly test security systems and processes</li>
</ul>
</li>
<li>Maintain an Information Security Policy
<ul>
<li>Requirement 12: Maintain a policy that addresses information security</li>
</ul>
</li>
</ol>
<p>Compliance with these requirements can be summarized into 3 main stages:</p>
<ul>
<li>Collecting and storing: Secure collection and tamper-proof storage of all log data so that it is available for analysis.</li>
<li>Reporting: Being able to prove compliance on the spot if audited and present evidence that controls are in place for protecting data.</li>
<li>Monitoring and alerting: Have systems in place such as auto-alerting, to help administrators constantly monitor access and usage of data. Administrators are warned of problems immediately and can rapidly address them. These systems should also extend to the log data itself –- there must be proof that log data is being collected and stored.</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>What does this actually mean for web application developers?</h3>
<p>It is considerably more expensive and more time-consuming to recover from a security incident than to take preventative measures ahead of time. If you follow the guidelines below, you will go along way to securing you application in line with the <abbr title="Payment Card Industry">PCI</abbr> <abbr title="Data Security Standards">DSS</abbr> regulations. Many of the measures apply to general application security, but since <abbr title="Payment Card Industry">PCI</abbr> <abbr title="Data Security Standards">DSS</abbr> is all about security, they are worth mentioning.</p>
<p>Server-level Security:</p>
<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>Application-level Security:</p>
<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 <abbr title="Structured Query Language">SQL</abbr> 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>
</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>
<p>Web Application-level Security:</p>
<ul>
<li>Use secure HTTP to transfer data and/or when logged into &#8216;administration&#8217; secutions of your web application.</li>
<li>Timeout sessions after 15 minutes and on browser close.</li>
<li>Provide multi-level login processes. For example, lock the application after 3 failed attempts for a period of 10 minutes.</li>
<li>Do not identify whether the username or password are incorrect, simply notify the user that their login failed and that they must try again.</li>
<li>Encrypt passwords stored in the database with a standard such as <a href="http://en.wikipedia.org/wiki/SHA_hash_functions" title="Wikipedia: SHA cryptographic has function" target="_blank" rel="nofollow">SHA-256</a> or &#8216;stronger&#8217;.</li>
<li>Use <a href="http://en.wikipedia.org/wiki/Captcha" title="Wikipedia: CAPTCHA" target="_blank" rel="nofollow">CAPTCHA</a>s (textual and aural) to prevent automated robots hacking into your application.</li>
<li>Run regular penetration tests on your application to identify potential problems.</li>
<li>Encrypt credit card information held in the database or other storage mechanism. Only store credit card data in line with the <abbr title="Payment Card Industry">PCI</abbr> <abbr title="Data Security Standards">DSS</abbr> regulations.</li>
</ul>
<p>Code-level Security:</p>
<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. 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>
<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>Conclusion</h3>
<p>The goal of the <abbr title="Payment Card Industry">PCI</abbr> Data Security Standard is to protect cardholder data that is processed, stored or transmitted by merchants. The security controls and processes required by <abbr title="Payment Card Industry">PCI</abbr> <abbr title="Data Security Standards">DSS</abbr> are vital for protecting cardholder account data, including the <abbr title="primary account number">PAN</abbr> &#8211; the primary account number printed on the front of a payment card. Merchants and any other service providers involved with payment card processing must never store sensitive authentication data after authorisation. This includes sensitive data that is printed on a card, or stored on a card’s magnetic stripe or chip &#8211; and personal identification numbers entered by the cardholder.</p>
<p>By following the points made above, you will go a long way to meeting the <abbr title="Payment Card Industry">PCI</abbr> <abbr title="Data Security Standards">DSS</abbr> guidelines, whilst also securing your infrastructure and applications in a more general sense.</p>
<p><strong>Caveat:</strong> The views and comments written in this article are provided as a guideline. I hold no responsibility for the security of your applications and data based upon the information provided.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/secure-your-application-pci-dss-specifications/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>Configuring ColdFusion 8 with Apache</title>
		<link>http://www.simonwhatley.co.uk/configuring-coldfusion-8-with-apache</link>
		<comments>http://www.simonwhatley.co.uk/configuring-coldfusion-8-with-apache#comments</comments>
		<pubDate>Fri, 16 Nov 2007 09:47:30 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[administrator]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Apache installation]]></category>
		<category><![CDATA[Application Servers]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[ColdFusion Administrator]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[errors]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[httpd.conf]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[trouble shooting]]></category>
		<category><![CDATA[Web Servers]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=334</guid>
		<description><![CDATA[After installing ColdFusion 8 and Apache successfully you may still see an "HTTP 500 Internal Server Error" when navigating to a ColdFusion page. All is not lost, you simply need to configure, or check the configuration of Apache. Apache requires very little post installation modification, but it is always good practice to check the httpd.conf file to ensure that the ColdFusion "install" scripts did what they were supposed to do.]]></description>
			<content:encoded><![CDATA[<p>After installing ColdFusion 8 and Apache successfully you may still see an &#8220;HTTP 500 Internal Server Error&#8221; when navigating to a ColdFusion page. All is not lost, you simply need to configure, or check the configuration of Apache.</p>
<p>Apache requires very little post installation modification, but it is always good practice to check the <em>httpd.conf</em> file to ensure that the ColdFusion &#8220;install&#8221; scripts did what they were supposed to do.</p>
<p>If you haven&#8217;t confirmed that Apache is running, open your browser and point it to <a href="http://localhost/">http://localhost/</a> (unless you specified a real URL during installation). You should see the Apache test page. If you see an error, review the <a href="http://www.simonwhatley.co.uk/installing-apache-on-vista" title="Apache Installation">Apache installation steps</a> to make sure you followed all the steps correctly, and/or check your log files for more detailed errors.</p>
<p>Now we know Apache is running, but how about ColdFusion? Point your browser to the ColdFusion Administrator  found commonly at <a href="http://localhost/CFIDE/administrator/index.cfm" title="The ColdFusion Administrator" target="_blank">http://localhost/CFIDE/administrator/index.cfm</a> and see what happens. One of three possible failures could occur:</p>
<ol>
<li>Your <strong>browser prompts you to save the .cfm</strong> file to your computer. There a couple of possible resolutions to this. Firstly restart the Apache service. If this does not resolve the issue you will need to check the <em>httpd.conf</em> file to ensure that the ColdFusion module is being loaded. The file can typically be found in the <em>C:\Program Files\Apache Software Foundation\Apache2.2\conf\</em> directory.<br />
Make sure that the <code>DirectoryIndex</code> has a reference to the <code>index.cfm</code> file (i.e. the default file):<img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/dir-module-cfm.png" alt="Apache dir_module Declaration" />Ensure that the <code>LoadModule jrun_module "C:/ColdFusion8/runtime/lib/wsconfig/1/mod_jrun22.so"</code> is also present:</p>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/11/jrun-settings.png" alt="Apache JRun Settings" /></p>
<p>If you need to edit this file, restart the Apache service after you have saved the changes.</li>
<li>You get a message that <strong>the CFIDE folder cannot be found</strong>. This is more likely to be a problem with where you placed the ColdFusion application during install. The default location is in the Apache directory (<em>C:\Program Files\Apache Software Foundation\Apache2.2\htdocs</em>), so check in the http.conf file to ensure the DocumentRoot is pointing correctly. Alternatively, copy this folder to your localhost webroot (e.g. <em>C:\WebRoot</em>) ensuring that the DocumentRoot points to your webroot (see the yellow box in the second screen-shot).</li>
<li>You get another message which probably means that you need to reinstall ColdFusion, and/or Apache!</li>
</ol>
<p>And that is it, you can start using ColdFusion and developing applications.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/configuring-coldfusion-8-with-apache/feed</wfw:commentRss>
		<slash:comments>5</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>
		<item>
		<title>Eliminating Whitespace in ColdFusion</title>
		<link>http://www.simonwhatley.co.uk/eliminating-whitespace-in-coldfusion</link>
		<comments>http://www.simonwhatley.co.uk/eliminating-whitespace-in-coldfusion#comments</comments>
		<pubDate>Fri, 26 Oct 2007 09:29:35 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Application Servers]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[ColdFusion Administrator]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[page processing]]></category>
		<category><![CDATA[servlets]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[WAP]]></category>
		<category><![CDATA[web application]]></category>
		<category><![CDATA[Web Servers]]></category>
		<category><![CDATA[WEB-INF folder]]></category>
		<category><![CDATA[WEB-INF/lib folder]]></category>
		<category><![CDATA[web.xml]]></category>
		<category><![CDATA[web.xml file]]></category>
		<category><![CDATA[whitespace]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=351</guid>
		<description><![CDATA[ColdFusion has never satisfactorily removed whitespace from generated content, however, removing this whitespace can dramatically improve your website's performance. Take a 100KB page for example. If 20% of the page is made up of whitespace, that is 20% that is unneccessary and 20% bandwidth cost that can be saved.]]></description>
			<content:encoded><![CDATA[<p>ColdFusion has never satisfactorily removed whitespace from generated content, however, removing this whitespace can dramatically improve your website&#8217;s performance. Take a 100KB page for example. If 20% of the page is made up of whitespace, that is 20% that is unneccessary and 20% bandwidth cost that can be saved.</p>
<p>Currently there are two main ways a ColdFusion developer can prevent whitespace; via the ColdFusion Administrator and by including certain tags in their code:</p>
<p><strong>1. ColdFusion Administrator</strong></p>
<p>Under the <em>Server Settings &gt; Settings</em> menu item there is a checkbox called &#8216;Enable Whitespace Management&#8217;. This checkbox should always be checked. According to the description, checking this checkbox <em>&#8220;reduces the file size of the pages that ColdFusion returns to the browser by removing many of the extra spaces, tabs, and carriage returns that ColdFusion might otherwise persist from the CFML source file.&#8221;</em> I am yet to be convinced, but it is worthwhile enabling it.</p>
<p><strong>2. ColdFusion Tags</strong></p>
<p><code>&lt;cfsetting enablecfoutputonly="true"&gt;&lt;/cfsetting&gt;</code></p>
<p>The <code>cfsetting</code> tag controls aspects of page processing, such as the output of <acronym title="HyperText Markup Language">HTML</acronym> code in pages (inside and outside the <code>cfsetting</code> tag body). If <code>enablecfoutputonly</code> is set to <code>true</code>, <acronym title="HyperText Markup Language">HTML</acronym> output is blocked if it is not wrapped in a <code>cfoutput</code> tag. Therefore, this tag &#8216;can&#8217; be used to minimise the amount of generated whitespace.</p>
<p><code>&lt;cfsilent&gt;&lt;/cfsilent&gt;</code></p>
<p>The <code>cfsilent</code> tag supresses output produced by <acronym title="ColdFusion Markup Language">CFML</acronym> within a tag&#8217;s scope. Therefore, you simply need to wrap the tag around anything you don&#8217;t want to output to the browser. As it does not return anything from with in it, so you have to be a little be careful when debugging.</p>
<p><code>&lt;cfprocessingdirective supresswhitespace="true"&gt;&lt;/cfprocessingdirective&gt;</code></p>
<p>One of the <code>cfprocessingdirective</code>&#8216;s purposes is to remove excess whitespace from ColdFusion generated content in the tag body. However, it does not affect any whitespace in <acronym title="HyperText Markup Language">HTML</acronym> code. You can nest the tags and toggle <code>supresswhitespace</code> on and off, not that I ever identify a good reason to do so.</p>
<p><strong>But there is a little known third way, using a servlet filter called Trim Filter.</strong></p>
<p>Servlet filters are tools available to web application developers. They are designed to be able to manipulate a request and response (or both) that is sent to a web application.</p>
<p>Trim Filter lets you decrease the size of file your server will send to all clients. The filter removes extra spaces and line breaks from outputted documents. This can be especially useful for <acronym title="Wireless Application Protocol">WAP</acronym>/<acronym title="Wireless Markup Language">WML</acronym> developers working with mobile devices, where the size for transferred documents is limited.</p>
<p>S<strong>etting up the servlet filter in ColdFusion</strong></p>
<p>Using the Trim Filter servlet filter found at the following URL:</p>
<p><a rel="nofollow" href="http://www.servletsuite.com/servlets/trimflt.htm" title="TrimFilter jar File">http://www.servletsuite.com/servlets/trimflt.htm</a></p>
<ul>
<li>Download the <a rel="nofollow" href="http://www.servletsuite.com/servlets/trimflt.jar" title="trimflt.jar">trimflt.jar</a></li>
<li>Save trimflt.jar in the WEB-INF/lib folder in the ColdFusion Server wwwroot.</li>
<li>Edit the web.xml file in the WEB-INF folder in the ColdFusion Server wwwroot with the following code:</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&lt;filter-mapping&gt;
	&lt;filter-name&gt;trimFilter&lt;/filter-name&gt;
	&lt;url-pattern&gt;*.cfm&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
&nbsp;
&lt;filter&gt;
	&lt;filter-name&gt;trimFilter&lt;/filter-name&gt;
	&lt;filter-class&gt;com.cj.trim.trimFilter&lt;/filter-class&gt;
&lt;/filter&gt;</pre></div></div>

<ul>
<li>Restart the ColdFusion Service</li>
</ul>
<p>And now, when a ColdFusion page is invoked, the whitespace is suppressed and wow does it do a good job.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/eliminating-whitespace-in-coldfusion/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Installing Apache on Vista</title>
		<link>http://www.simonwhatley.co.uk/installing-apache-on-vista</link>
		<comments>http://www.simonwhatley.co.uk/installing-apache-on-vista#comments</comments>
		<pubDate>Wed, 08 Aug 2007 20:23:52 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[HTTP Server]]></category>
		<category><![CDATA[IIS 7]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Web Servers]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=315</guid>
		<description><![CDATA[Following the purchase of a spangly new Toshiba laptop running Vista, and not one for making life simple, I decided not to run my development environment on IIS7, but rather, I wanted to install the latest version of Apache. The installation process was not a trivial matter!]]></description>
			<content:encoded><![CDATA[<p>Following the purchase of a spangly new Toshiba laptop running Vista, and not one for making life simple, I decided not to run my development environment on <acronym title="Internet Information Services">IIS</acronym>7, but rather, I wanted to install the latest version of Apache.</p>
<p>Installing Apache under Windows XP was relatively trivial. This is not the case under Windows Vista. The creation of the Apache service fails, but not overtly. Furthermore, the all-important conf directory can™t be set up by the installer, probably due to user permission problems.</p>
<p>I finally got it working with the following procedure. I used the latest version of Apache (2.2.4) and Windows Vista Business Edition.</p>
<ol>
<li>Uninstall any previous installations of Apache Web server (Start &gt; Control Panel &gt; Programs and Features).<br />
Make sure that all old Apache folders are also removed (e.g. like C:\Program Files\Apache Software Foundation\&#8230;).</li>
<li>Turn off your firewall via the Control Panel.</li>
<li>Stop User Account Control (UAC).</li>
<li>Get the most recent version of Apache from <a href="http://httpd.apache.org/" rel="nofollow" target="_blank" title="Apache Webserver">http://httpd.apache.org/</a> and put it on your desktop, or folder of your choosing. The file I used was called apache_2.2.4-win32-x86-no_ssl.msi, but for ease, it is a good idea to rename the install file to apache.msi.</li>
<li>Start &gt; All Programs &gt; Accessories Right-Click Command Prompt and choose œRun as Administrator.</li>
<li>Via the command prompt, navigate to the folder in which the apache.msi install file is located.</li>
<li>Type msiexec /i apache.msi on the command prompt.
<p style="text-align: center"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/08/apache-install-command-prompt.png" alt="Apache Install Command Prompt" /></p>
</li>
<li>Run through the Apache installer.
<p style="text-align: center"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/08/apache-install-step01.png" alt="Apache Install Step 1" /></p>
<p style="text-align: center"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/08/apache-install-step02.png" alt="Apache Install Step 2" /></p>
<p style="text-align: center"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/08/apache-install-step03.png" alt="Apache Install Step 3" /></p>
<p style="text-align: center"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/08/apache-install-step04.png" alt="Apache Install Step 4" /></p>
<p style="text-align: center"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/08/apache-install-step05.png" alt="Apache Install Step 5" /></p>
<p style="text-align: center"><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>
<p style="text-align: center"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/08/apache-install-step06.png" alt="Apache Install Step 6" /></p>
<p style="text-align: center"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/08/apache-install-step07.png" alt="Apache Install Step 7" /></p>
<p style="text-align: center"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/08/apache-install-step08.png" alt="Apache Install Step 8" /></p>
<p style="text-align: center"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2007/08/apache-install-step09.png" alt="Apache Install Step 9" /></p>
</li>
<li>I™m running it as a development server, so I left the domain as &#8220;localhost&#8221;.</li>
<li>Choose the default server on port 80 for all users option.</li>
<li>The default installation directory is C:\Program Files\Apache Software Foundation\Apache2.2\, but again for ease, you could change the installation directory to C:\Apache.</li>
<li>Reboot your computer.</li>
<li>The little Apache feather icon won™t appear on the task bar under Vista with the present version of Apache (2.2.4). To remove the œerror box that says blank or &#8220;the operation completed successfully on startup, go to All Programs &gt; Startup, and remove the &#8220;Monitor Apache Servers&#8221; item there.</li>
<li>Browse to http://localhost. It should say &#8220;It works!&#8221; If it doesn&#8217;t, panick, or check your httpd.conf file by going to All Programs &gt; Apache HTTP Server 2.2.x &gt; Configure Apache Server &gt; Test Configuration. Follow the directions for fixing the configuration file.</li>
<li>Turn your firewall back on.</li>
<li>Turn UAC back on too, if you like to be constantly bugged by control messages!</li>
</ol>
<p>Good luck!<br />
<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/installing-apache-on-vista/feed</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>Poor Man&#039;s HTTP Compression with ColdFusion</title>
		<link>http://www.simonwhatley.co.uk/poor-mans-http-compression-with-coldfusion</link>
		<comments>http://www.simonwhatley.co.uk/poor-mans-http-compression-with-coldfusion#comments</comments>
		<pubDate>Sat, 17 Mar 2007 15:11:23 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Application Servers]]></category>
		<category><![CDATA[Coldbeans]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTP protocol]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Server Side]]></category>
		<category><![CDATA[servlet]]></category>
		<category><![CDATA[web application]]></category>
		<category><![CDATA[web applications]]></category>
		<category><![CDATA[Web Browser]]></category>
		<category><![CDATA[Web Servers]]></category>
		<category><![CDATA[WEB-INF folder]]></category>
		<category><![CDATA[WEB-INF/lib folder]]></category>
		<category><![CDATA[web.xml]]></category>
		<category><![CDATA[web.xml file]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=260</guid>
		<description><![CDATA[Almost every web application will benefit from the compression of content. A compression filter optimises the size of the content that is sent from a webserver to a web browser via the Internet. Since generating content and serving pages via the World Wide Web is the core behind web applications, it is simple components that aid these processes that are incredibly useful. This is where servlet filters come into play.]]></description>
			<content:encoded><![CDATA[<p>An interesting article I read in the CFDJ recently was entitled Poor Man&#8217;s HTTP Compression with ColdFusion. Almost every web application will benefit from the compression of content. A compression filter optimises the size of the content that is sent from a webserver to a web browser via the Internet. Since generating content and serving pages via the World Wide Web is the core behind web applications, it is simple components that aid these processes that are incredibly useful. This is where servlet filters come into play.</p>
<p>Servlet filters are tools available to web application developers. They are designed to be able to manipulate the request and responses that are sent to a web application, without manipulating the servlets, static pages like HTML and, in this case, CFM pages that are being used by the web application (unless of course that is the desired response). Servlet filters act like a chain of steps that a request and response must go through before reaching the page in the application.</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>Compressing Content Using a Servlet Filter</h3>
<p>Compression is a process that reduces the number of bytes required to define a document in order to save disk space or transmission time. It is extremely useful for sending information across the web, because the speed at which people receive information from a web application is dependent upon how much data you are trying to send. The smaller the amount of information that is to be sent, the faster it can be sent. Therefore, compression and the associated responsiveness is a key component to retaining users and generating revenue from those retained users.</p>
<p>Compression can be effectively achieved by having a servlet filter conditionally pipe the produced content to a GZip-compressed file. GZip is supported by the HTTP protocol and almost all modern browsers (hence the servlet filter conditionally compresses the content).</p>
<p>GZip compression usually results in a 6:1 compression ratio, although this depends on how much content is being sent and what the content is.</p>
<h3>Setting up the Servlet Filter in ColdFusion</h3>
<p>Using the ColdBeans servlet filter found at the following URL:</p>
<p><a href="http://www.servletsuite.com/servlets/gzipflt.htm" rel="nofollow">http://www.servletsuite.com/servlets/gzipflt.htm</a></p>
<ul>
<li>Download the <a href="http://www.servletsuite.com/servlets/gzipflt.jar" rel="nofollow">GZipFilter.jar</a></li>
<li>Save GZipFilter.jar in the WEB-INF/lib folder in the ColdFusion Server wwwroot.</li>
<li>Edit the web.xml file in the WEB-INF folder in the ColdFusion Server wwwroot with the following code:

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&lt;filter&gt;
&lt;filter-name&gt;GzipFilter&lt;/filter-name&gt;
&lt;filter-class&gt;com.cj.gzipflt.GzipFilter&lt;/filter-class&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
&lt;filter-name&gt;GzipFilter&lt;/filter-name&gt;
&lt;url-pattern&gt;*.cfm&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;</pre></div></div>

</li>
<li>Restart the ColdFusion Service</li>
</ul>
<p>Now, when you invoke any <code>.cfm</code> page the GzipFilter will check out client&#8217;s browser settings. If the browser does not support gzip, the filter invokes resource normally. If the browser does support gzip, output will be compressed.<br />
<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/poor-mans-http-compression-with-coldfusion/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>ColdFusion (CFML) Engines</title>
		<link>http://www.simonwhatley.co.uk/coldfusion-cfml-engines</link>
		<comments>http://www.simonwhatley.co.uk/coldfusion-cfml-engines#comments</comments>
		<pubDate>Mon, 27 Mar 2006 22:02:25 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe ColdFusion]]></category>
		<category><![CDATA[app server]]></category>
		<category><![CDATA[Application Servers]]></category>
		<category><![CDATA[BlueDragon]]></category>
		<category><![CDATA[built-in web server]]></category>
		<category><![CDATA[CFML]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[ColdFusion Markup Language]]></category>
		<category><![CDATA[Coral Web Builder]]></category>
		<category><![CDATA[Digital Lattice Orange]]></category>
		<category><![CDATA[engines]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IgniteFusion]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JSP]]></category>
		<category><![CDATA[less closed technology]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[New Atlanta]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[Scripting Engines]]></category>
		<category><![CDATA[Smith Project]]></category>
		<category><![CDATA[Web Builder]]></category>
		<category><![CDATA[web development platforms]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Web Servers]]></category>
		<category><![CDATA[Web technology industry standards]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=64</guid>
		<description><![CDATA[CFML is the name of the scripting language used by ColdFusion and several alternative server environments. It stands for ColdFusion Markup Language and is similar to HTML in appearance in that it uses tags. CFML is the code that powers ColdFusion, a program available from Adobe (formerly Macromedia), as well as such engines as BlueDragon, IgniteFusion, Railo, Coral Web Builder, and other web development platforms.]]></description>
			<content:encoded><![CDATA[<p>CFML is the name of the scripting language used by ColdFusion and several alternative server environments. It stands for ColdFusion Markup Language and is similar to HTML in appearance in that it uses tags. CFML is the code that powers ColdFusion, a program available from Adobe (formerly Macromedia), as well as such engines as BlueDragon, IgniteFusion, Railo, Coral Web Builder, DigitalLattice Orange and other web development platforms.</p>
<p>ColdFusion originated as proprietary technology based on Web technology industry standards. However, it is becoming a less closed technology through the availability of competing products. In fact, one could now make the argument that ColdFusion is even less platform bound than say raw J2EE or .NET, simply because ColdFusion will run on top of a .NET app server (New Atlanta), or on top of any J2EE app server (Websphere, JRun, Tomcat, etc.) In theory, you could move a ColdFusion app unchanged from a J2EE app server to a .NET app server.</p>
<p>Currently, alternative server platforms generally support Coldfusion MX 6.1 functionality, with minor changes or feature enhancements.</p>
<p>I have listed some of the alternatives in order of maturity/populrity.  However, I will leave it up to you to decide which one is the best and easiest to implement.  Please tell me your experiences.</p>
<h2>BlueDragon</h2>
<p>The BlueDragon Server family of Java-based servers (Server and Server JX) enables the stand-alone deployment of CFML. Both BlueDragon Server versions contain a built-in web server for development and testing, and each integrates with Microsoft IIS, Sun ONE/Netscape/iPlanet (JX only), and Apache web servers for deployment.</p>
<p>BlueDragon offers flexibility for the deployment of ColdFusion Markup Language (CFML) pages with native technology platform integration on the operating system, web server and database of your choice.</p>
<p>Visit the New Atlanta website at <a target="_blank" href="http://www.newatlanta.com/products/bluedragon/index.cfm">http://www.newatlanta.com</a> to download the latest version of BlueDragon.</p>
<h2>Railo</h2>
<p>Railo is a ColdFusion Compiler for translating and executing of ColdFusion based websites. The Compiler translates the ColdFusion code into Java classes which can be executed on a Java server. Railo also comes with a runtime engine, which contains all necessary libraries for the translated code. Railo automatically detects wether to translate a ColdFusion file or when to use the runtime engine. You can compare Railo at best with <acronym title="Java Server Pages">JSP</acronym> interfaces. <acronym title="Java Server Pages">JSP</acronym> uses an other syntax but the main functionality is almost the same. Because Railo implements most of the <acronym title="Java Server Pages">JSP</acronym> interfaces, it is highly compatible to <acronym title="Java Server Pages">JSP</acronym> interfaces.</p>
<p>Visit the Railo website at <a target="_blank" href="http://www.railo.ch/en/index.cfm">http://www.railo.ch</a></p>
<h2>IgniteFusion</h2>
<p>IgniteFusion is a ColdFusion compatible script engine that runs ColdFusion scripts. In addition to Coldfusion <acronym title="ColdFusion Markup Language">CFML</acronym> compatibility IgniteFusion has functionality that extends Coldfusion.  Although in Beta, it is approaching release.</p>
<p>Visit the IgniteFusion website at <a target="_blank" href="http://www.ignitefusion.com/">http://www.ignitefusion.com</a> to download the scripting engine.</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/coldfusion-cfml-engines/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlueDragon &#8211; ColdFusion (CFML) Engine</title>
		<link>http://www.simonwhatley.co.uk/bluedragon-coldfusion-cfml-engine</link>
		<comments>http://www.simonwhatley.co.uk/bluedragon-coldfusion-cfml-engine#comments</comments>
		<pubDate>Wed, 19 Oct 2005 12:40:59 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Application Servers]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[BD.NET]]></category>
		<category><![CDATA[BlueDragon]]></category>
		<category><![CDATA[BlueDragon Server]]></category>
		<category><![CDATA[built-in web server]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[ColdFusion Markup Language]]></category>
		<category><![CDATA[free web application platforms]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[less closed technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[New Atlanta]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[Scotland]]></category>
		<category><![CDATA[Scripting Engines]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[TagServlet Ltd]]></category>
		<category><![CDATA[web applications]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Web Servers]]></category>
		<category><![CDATA[Web technology industry standards]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=4</guid>
		<description><![CDATA[The BlueDragon Server family of Java-based servers (Server and Server JX) enables the stand-alone deployment of CFML. Both BlueDragon Server versions contain a built-in web server for development and testing, and each integrates with Microsoft IIS, Sun ONE/Netscape/iPlanet (JX only), and Apache web servers for deployment.]]></description>
			<content:encoded><![CDATA[<p>The BlueDragon Server family of Java-based servers (Server and Server JX) enables the stand-alone deployment of CFML. Both BlueDragon Server versions contain a built-in web server for development and testing, and each integrates with Microsoft IIS, Sun ONE/Netscape/iPlanet (JX only), and Apache web servers for deployment.</p>
<p>BlueDragon offers flexibility for the deployment of ColdFusion Markup Language (CFML) pages with native technology platform integration on the operating system, web server and database of your choice.</p>
<p><a rel="nofollow" href="http://www.newatlanta.com/products/bluedragon/index.cfm">http://www.newatlanta.com</a></p>
<p>BlueDragon is an alternative CFML engine comparable to Macromedia&#8217;s ColdFusion. It is exclusively licensed and distributed by New Atlanta from TagServlet Ltd based out of Scotland. ColdFusion is a proprietary technology based on Web technology industry standards, however, it is becoming a less closed technology through the availability of potentially competing products.</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>
<p>New Atlanta&#8217;s BlueDragon product, released in 2002, provides a ColdFusion MX 6.x-compatible platform to run CFML-based applications on a variety of platforms ( Windows, Linux, Mac OS, and more). While ColdFusion MX 7 offers new features not available in BlueDragon, some new features in CFMX 7 have long been in BlueDragon (such as sourceless deployment, server-based deployment on OS X, and more.)</p>
<p>BlueDragon 6.2 is available in four editions: BlueDragon Server and Server JX (similar to ColdFusion Standalone editions), BlueDragon for J2EE Application Servers (BD/J2EE), and BlueDragon for the Microsoft .NET Framework (BD.NET).</p>
<p>The first two editions are standalone servers which run on Windows, Linux, and OS X. With BD/J2EE, CFML applications can be deployed on any J2EE server, enabling integration of CFML and J2EE as enabled in CFMX. BD.NET uniquely extends the .NET framework and IIS to permit deployment of CFML applications as native .NET web applications, offering integration between CFML and ASP.NET that&#8217;s not possible with CFMX.</p>
<p>The Server JX, J2EE, and .NET editions of BlueDragon are commercial products which are available as 30 day unlimited trials which convert to a single-IP developer edition with no expiration. Purchase and licensing information is available on the BlueDragon site.</p>
<p>The Server edition, on the other hand, is free for deployment (though not for hosting, redeployment, or (as of the 6.2 release) commercial use. Intended to gain favor with those comparing to other free web application platforms, there are no differences in CFML tags supported in the free Server edition, but it supports only ODBC drivers on Windows (and only MySQL or PostgreSQL on Linux and OS X), it supports only IIS on Windows or Apache on Linux/OS X, and does not support secured (SSL) connections.</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>
<p>None of the limitations of the free Server edition exist in the commercial Server JX, J2EE, or .NET editions.</p>
<p>BlueDragon offers several advantages (tags, functions, and other functionality) not found in ColdFusion. Similarly, there are a few tags and functions found in ColdFusion that are not supported currently in BlueDragon. New Atlanta maintains a complete list of incompatibilities with Macromedia ColdFusion MX in the documentation.</p>
<p>The .NET edition of BlueDragon may indeed be the most compelling edition for many, since it&#8217;s something that ColdFusion MX does not support. Designed to run on Microsoft&#8217;s .NET platform, BD.NET not only enables CFML applications to leverage the powerful benefits of the .NET platform, it also opens the door to integration between CFML and ASP.NET as well as .NET objects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/bluedragon-coldfusion-cfml-engine/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

