<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>The blog of Russ (snake) Michaels - ColdFusion</title>
			<link>http://russ.michaels.me.uk/index.cfm</link>
			<description>This is the blog of Russ Michaels. Here you will find lots of stuff about ColdFusion, tech support and hosting, but the occasional random ramblings about motorcycles, tattoos, the state of the world, rogue traders, product reviews and other stuff that makes me rant.</description>
			<language>en-gb</language>
			<pubDate>Wed, 08 Sep 2010 02:53:02 --0100</pubDate>
			<lastBuildDate>Tue, 24 Aug 2010 00:53:00 --0100</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>russ@michaels.me.uk</managingEditor>
			<webMaster>russ@michaels.me.uk</webMaster>
			
			<item>
				<title>ColdFusion Directory Traversal vulnerability</title>
				<link>http://russ.michaels.me.uk/index.cfm/2010/8/24/ColdFusion-Directory-Traversal-vulnerability</link>
				<description>
				
				&lt;p&gt;There has been a lot of noise over the past week about the &lt;a href=&quot;http://osvdb.org/show/osvdb/67047&quot;&gt;ColdFusion Directory Traversal Vulnerability&lt;/a&gt;.&amp;nbsp; &lt;br /&gt;If you haven&amp;#39;t heard, the basic issue is that ColdFusion allows the inclusion of just about any file on the server (usually Windows servers) to be included by using either a URL parameter or form parameter.&amp;nbsp; Without special encoding the vulnerability will let you grab any file ending in .xml, but by adding a %00 to the parameter, just about any file gets included in the normal display of the ColdFusion Administrator login page.&amp;nbsp; This means that no authentication is required to pull this off.&amp;nbsp; The flaw is in the internationalization tags being used by the Administrator pages which include XML files to render the text for different languages in the CFAdmin section.&amp;nbsp; In turn the XML files aren&amp;#39;t really XML files, but instead are files containing large switch/case statements which, according to the arguments, spit out the value for the piece of text the XML file is called with.&amp;nbsp; The flaw is that the code calling the file uses user input to decide which file to grab, but doesn&amp;#39;t properly sanitize the request, allowing the inclusion of other files from the same disk the CFAdmin section is living on.&amp;nbsp; As &lt;a href=&quot;http://www.gnucitizen.org/blog/coldfusion-directory-traversal-faq-cve-2010-2861/&quot;&gt;Adrian Pastor points out&lt;/a&gt;, CF runs under the SYSTEM account by default, which means access to any file on the drive.&amp;nbsp; Including the CF configuration files which may include things like database connection settings (with passwords saved which can be &lt;a href=&quot;http://hexale.blogspot.com/2008/07/how-to-decrypt-coldfusion-datasource.html&quot;&gt;decrypted easily&lt;/a&gt;).&amp;nbsp; Adrian also points out that once an attacker gains access to the CF Admin, it&amp;acirc;&amp;euro;&amp;trade;s game over.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The patches provided by Adobe for the problem are quite simple, and in most cases shouldn&amp;#39;t even require a restart of the ColdFusion services.&amp;nbsp; The impact of the vulnerability is huge.&amp;nbsp; As &lt;a href=&quot;http://twitter.com/Wh1t3Rabbit&quot;&gt;Rafal Los&lt;/a&gt;, who rightfully calls this a &amp;quot;Disaster&amp;quot;, points out, there are &lt;a href=&quot;http://h30507.www3.hp.com/t5/Following-the-White-Rabbit-A/Adobe-ColdFusion-s-Directory-Traversal-Disaster/ba-p/81964&quot;&gt;a lot of ColdFusion servers&lt;/a&gt; with the Administrator pages available to the world.&lt;/p&gt;  &lt;p&gt;Even worse, the vulnerability can be exploited on versions 6-9 (CFMX6, CFMX7, CF8, CF9), but Adobe is only &lt;a href=&quot;http://kb2.adobe.com/cps/857/cpsid_85766.html&quot;&gt;releasing patches for versions 8 and 9&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;As we have been working with&amp;nbsp; and hosting ColdFusion since version 5,&amp;nbsp; we understand how most CF developers work, and how poorly the servers are administered in most installations.&amp;nbsp; In his post, Rafal Los offers some Google dorks for finding CF servers, and states that &amp;quot;There is really &lt;b&gt;no legitimate reason&lt;/b&gt; to have a ColdFusion Admin interface on the public internet&amp;quot; really, I can&amp;#39;t think of one, yet there are many results!.&amp;nbsp; So why are there so many results?&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;It is a combination of factors, laziness I&amp;#39;m sure being close to the top of the&amp;nbsp; list, but there are others.&amp;nbsp; The primary reason that comes to my mind is the location of the ColdFusion Administrator directory, inside of the &amp;#39;/CFIDE/&amp;#39; directory.&amp;nbsp; This directory has other directories inside of it which are used by CF for things like form validation, Ajax, rendering of graphs, etc. and as such some applications stop working if the CFIDE directory does not exist, so it must be mapped as a virtual directory in most cf websites.&amp;nbsp; &lt;br /&gt;Often it is the webmaster or developer&amp;nbsp; who is setting up and managing the ColdFusion server and who usually has very little knowledge of server security and limited knowledge of the ColdFusion Administrator and its associated security issues or the CFIDE requirements in an application, even if a real server admin is involved his knowledge of ColdFusion will be little to none.     &lt;/p&gt;  &lt;p&gt;Thankfully Adobe has finally released a &lt;a href=&quot;http://www.adobe.com/products/coldfusion/whitepapers/pdf/91025512_cf9_lockdownguide_wp_ue.pdf&quot;&gt;Lockdown Guide&lt;/a&gt; written by &lt;a href=&quot;http://www.petefreitag.com/&quot;&gt;Pete Freitag&lt;/a&gt; which is well done, and I hope is somewhat due to all the advice and feedback I have given Adobe over the years in this dept.&amp;nbsp; I just hope people read and follow it.&lt;/p&gt;  &lt;p&gt;Another problem is those older versions for which no patch is forthcoming.&amp;nbsp; CF developers are very wary of changing the version of CF their application currently works on.&amp;nbsp; Much of this comes from a botched move by Macromedia a long time ago, when their first version of ColdFusion MX 6 (6.0.0) became notorious for breaking apps and eating resources.&amp;nbsp; This means that there are now a lot of old applications which are on old versions of CF.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p class=&quot;code&quot;&gt;If you run a CF server then you should install the patches and lock down access to your ColdFusion Administrator.   &lt;br /&gt;If you have a CFIDE vDir mapped to your sites, DO NOT use the original folder, take a copy of the CFIDE, put it somewhere else and delete the ADMINISTRATOR and ADMINAPI folders, now use this copy for your virtual directories. I have various old CF security and lockdown articles on this blog which you may want to take a look at.&lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 24 Aug 2010 00:53:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2010/8/24/ColdFusion-Directory-Traversal-vulnerability</guid>
				
			</item>
			
			<item>
				<title>FREE Railo hosting is now available at CFMLDeveloper.com</title>
				<link>http://russ.michaels.me.uk/index.cfm/2010/6/29/FREE-Railo-hosting-is-now-available-at-CFMLDevelopercom</link>
				<description>
				
				&lt;p&gt;As of today, &lt;a href=&quot;http://www.getrailo.org/&quot;&gt;Railo &lt;/a&gt;3.1 is now available at &lt;a href=&quot;http://www.cfmldeveloper.com/&quot;&gt;CFMLdeveloper.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;If you already have an account then simply login to &lt;a href=&quot;http://helm.cfmldeveloper.com/&quot;&gt;HELM &lt;/a&gt;and go to Packages -&amp;gt; add new and choose one of the new Railo Plans. Please note that the SETUP fee still applies for all new packages, but is still a one-time fee for fraud validation purposes and your hosting is then FREE forever. For more info please refer to the &lt;a href=&quot;http://www.cfmldeveloper.com/page.cfm/hosting/resources&quot;&gt;HELP pages&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you do not yet have an account then simply SIGNUP from the &lt;a href=&quot;http://www.cfmldeveloper.com/page.cfm/hosting&quot;&gt;hosting page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Please don&apos;t forget to check the Hosting support pages if you get stuck, most common questions can be found there.&lt;/p&gt; 
				</description>
				
				<category>News &amp; Gossip</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 29 Jun 2010 16:41:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2010/6/29/FREE-Railo-hosting-is-now-available-at-CFMLDevelopercom</guid>
				
			</item>
			
			<item>
				<title>cfmldeveloper upgraded to CF9</title>
				<link>http://russ.michaels.me.uk/index.cfm/2010/5/30/cfmldeveoper-upgraded-to-CF9</link>
				<description>
				
				&lt;div class=&quot;entry&quot;&gt; 					&lt;p&gt;Last night I just completed upgrading &lt;a href=&quot;http://www.cfmldeveloper.com/&quot;&gt;cfmldeveloper.com&lt;/a&gt;  to ColdFusion 9. For those that do not know &lt;a href=&quot;http://www.cfmldeveloper.com/&quot;&gt;cfmldeveloper.com&lt;/a&gt; is the FREE ColdFusion hosting service that I run for developer. Recently rebranded from cfdeveloper.co.uk.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;&lt;b&gt;What&amp;#39;s new in ColdFusion 9&lt;/b&gt;&lt;/h3&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; ColdFusion 9&amp;#39;s list of new features is quite long, so I&amp;#39;ll just mention a   few items that I find most interesting. &lt;a href=&quot;http://www.adobe.com/products/coldfusion/features/index.html&quot;&gt;For a  complete list of new features, go to Adobe&amp;#39;s site.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;One huge addition in ColdFusion 9 is the incorporation of the  Java Hibernate object-relational mapping (ORM) library. ColdFusion  abstracts much of the complexity of Hibernate away and offers a simple  API to allow the loading and saving of CFCs to a relational database.  This makes object-oriented development even easier, as you can build an  object model without thinking about the database at all, and let  Hibernate translate that model into a schema automatically. By providing  nested transactions and hooks into the Hibernate event model, you can  build robust domain models very quickly.&lt;/p&gt; &lt;p&gt;The next feature is sure to be a&amp;nbsp; favourite of anyone who has spent  many  hours building &amp;quot;export to Excel&amp;quot; logic in applications. Sometimes it is  the simple approach of creating an HTML table and letting Excel convert  it; other times, it is the much more tedious option of using Apache POI  to build up worksheets and formulas. ColdFusion 9 includes the new  cfspreadsheet tag, which finally puts an end to this chore. Along with  the tag is a large set of functions to allow virtually any manipulation  of a spreadsheet. These functions can be saved in Excel or OpenOffice  format as well.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;There are a lot of new goodies I could talk about, but here is  a quick list:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; &lt;b&gt;|&amp;gt; &lt;/b&gt; Server API for SOAP and AMF (allowing remote use  of core  features such as charting, PDF creation, and email from Flex or other  external systems)&lt;br /&gt; &lt;b&gt;|&amp;gt; &lt;/b&gt; Huge set of Microsoft SharePoint integration  functions to  leverage an existing SharePoint deployment&lt;br /&gt; &lt;b&gt;|&amp;gt; &lt;/b&gt; Seamless support for the Java portlet  specifications,  making integration with things like &lt;a href=&quot;http://www.liferay.com/&quot;&gt;Liferay&lt;/a&gt;  a breeze&lt;br /&gt; &lt;b&gt;|&amp;gt; &lt;/b&gt; Addition of &lt;a href=&quot;http://lucene.apache.org/solr/&quot;&gt;Apache  Solr&lt;/a&gt; to supply search services (a worthy replacement over Verity)&lt;br /&gt; &lt;b&gt;|&amp;gt; &lt;/b&gt; Addition of &lt;a href=&quot;http://ehcache.org/&quot;&gt;Ehcache&lt;/a&gt;  to  supply page and page-fragment caching, along with cache statistics and  other cache manipulation functions&lt;br /&gt; &lt;b&gt;|&amp;gt; &lt;/b&gt; &lt;a href=&quot;http://www.adobe.com/products/coldfusion/pdfs/cf9_performancebrief_ue.pdf&quot;&gt;Big   performance improvements over ColdFusion 8 and ColdFusion 7.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;&lt;b&gt;ColdFusion Builder&lt;/b&gt;&lt;/h3&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; The next item isn&amp;#39;t actually a feature of ColdFusion 9, but it&amp;#39;s worth  pointing out. Adobe has built a dedicated IDE for ColdFusion  development called &lt;a href=&quot;http://www.adobe.com/products/coldfusion/cfbuilder/features/&quot;&gt;ColdFusion   Builder&lt;/a&gt;. Back when ColdFusion was run by Allaire, there was a tool  called CF Studio or Homesite. When Macromedia acquired Allaire, it  dropped Studio  development in favour of its Dreamweaver tool. Since then, many people  have  used Dreamweaver or migrated to the CFEclipse plug-in for the Eclipse  IDE.  Thankfully, Adobe has now released ColdFusion  Builder, which is built on the Eclipse platform and offers tight  integration with their Flash Builder tool for building Flash and Flex  applications.&lt;/p&gt; &lt;p&gt;ColdFusion Builder offers a useful and predictable set of tools,  which include code completion, server management, debugging, templates,  snippets, etc. And since it is built on Eclipse, the world of Eclipse  plug-ins is open; it includes things such as Git or Subversion  integration, Mylyn, ANT, Maven, etc. ColdFusion developers have been  vocal about wanting a real IDE from Adobe, so it is nice to see that  Adobe is listening.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;ColdFusion 9 Tutorials and Resources&lt;/h3&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#CFLanguageEnhancement&quot; target=&quot;_self&quot;&gt;CFML Language Enhancements Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#CFScriptEnhancement&quot; target=&quot;_self&quot;&gt;CFScript Enhancement Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#CFSAAS&quot; target=&quot;_self&quot;&gt;ColdFusion  As a Serveice Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#ORM&quot; target=&quot;_self&quot;&gt;Hibernate-based ORM Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#CFANDMS&quot; target=&quot;_self&quot;&gt;Microsoft  SharePoint &amp;amp; Office Interoperability Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#JEEPortlets&quot; target=&quot;_self&quot;&gt;Native JEE Portlets Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#UIControls&quot; target=&quot;_self&quot;&gt;UI Controls Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#Caching&quot; target=&quot;_self&quot;&gt;Advance  Caching Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#SolrLucene&quot; target=&quot;_self&quot;&gt;Apache Solr / Lucene Integration Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#ServerManager&quot; target=&quot;_self&quot;&gt;Server Management Tool Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#FlexAndAIR&quot; target=&quot;_self&quot;&gt;Flex/AIR Integration Tutorials&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  				  &lt;/div&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Sun, 30 May 2010 13:31:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2010/5/30/cfmldeveoper-upgraded-to-CF9</guid>
				
			</item>
			
			<item>
				<title>MangoBlog: Adding a custom page title</title>
				<link>http://russ.michaels.me.uk/index.cfm/2010/5/20/MangoBlog-Adding-a-custom-page-title</link>
				<description>
				
				&lt;p&gt;l have recently decided to try out &lt;a href=&quot;http://www.mangoblog.org/&quot; target=&quot;_blank&quot;&gt;MangBlog&lt;/a&gt; for the new &lt;a href=&quot;http://www.cfmldeveloper.com/&quot; target=&quot;_blank&quot;&gt;cfmldeveloper.com&lt;/a&gt; site and I have to say I really like it much better than BlogCFC (sorry Ray). &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Because MangoBlog allows you to add custom pages you can pretty much use it to create your entire web site with a basic CMS as long you don&amp;#39;t need to do anything complex on your pages, at which point you may find the tinyMCE editor too restrictive.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;When you add a custom page to MangoBlog the &amp;quot;title&amp;quot; is used not only on the page but also on the navigation menu, which I didn&amp;#39;t find too useful as I did not want the menu text and page title to be the same. So I was instantly thrown in at the deep end with a requirement to customise MangoBlog, which thankfully turned out to be very easy as it is very well written and easy to understand.    &lt;/p&gt;&lt;p&gt;&lt;br /&gt;MangoBlog is written in classic CFML style using imported tag libraries and &amp;lt;mango: mytag attributes&amp;gt; syntax as apposed to using the OO style frameworks that are popular these days.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Adding a custom page title is a snip.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;When adding a new page, simply add a new custom field like this&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p class=&quot;codePrint &quot;&gt;label:&amp;nbsp;&amp;nbsp;&amp;nbsp; page title      &lt;br /&gt;key:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pagetitle       &lt;br /&gt;Value:&amp;nbsp;&amp;nbsp; My Page Title&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now edit the page.cfm file in your skin folder and edit the code that displays the &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;mango:Blog&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;/&amp;gt;&lt;/span&gt;, it will look something like this depending on your skin.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;pre class=&quot;code csharpcode &quot;&gt;&amp;lt;h1 id=&amp;quot;banner-header&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;mango:Blog url /&amp;gt;&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;mango:Blog title /&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;/pre&gt; &lt;style type=&quot;text/css&quot;&gt;  .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, &quot;Courier New&quot;, courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;and change it to this&lt;/p&gt;  &lt;pre class=&quot;code csharpcode &quot;&gt;   &amp;lt;mango:PageProperty ifHasCustomField=&amp;quot;pageTitle&amp;quot; customField=&amp;quot;pageTitle&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;mango:PageProperty ifNOTHasCustomField=&amp;quot;pageTitle&amp;quot;&amp;gt;&amp;lt;mango:PageProperty title /&amp;gt;&lt;br /&gt;   &amp;lt;/mango:PageProperty&amp;gt;&lt;/pre&gt;  &lt;p&gt;&lt;style type=&quot;text/css&quot;&gt;  .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, &quot;Courier New&quot;, courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This checks for the existance of the &amp;quot;pageTitle&amp;quot; custom field on each page, it is exists then it will display that value, otherwise it will display the title.&lt;/p&gt;  &lt;p&gt;You can use the same method to insert any custom field values on any page.&lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 20 May 2010 16:33:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2010/5/20/MangoBlog-Adding-a-custom-page-title</guid>
				
			</item>
			
			<item>
				<title>Fix the DNS caching in ColdFusion</title>
				<link>http://russ.michaels.me.uk/index.cfm/2010/4/16/Fix-the-DNS-caching-in-ColdFusion</link>
				<description>
				
				&lt;p&gt;It has been a well known fact for many years (to some of us at least) that ColdFusion (or rather the JRE) caches DNS look-ups forever until the service is next restarted.&lt;/p&gt;  &lt;p&gt;The caveat of this is that if any domain name you are connecting to from CFML has had a DNS change such as a change of IP address then code will suddenly stop working until you next restart CF.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Areas that will affect include:-&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SMTP servers in the CFADMIN &lt;/li&gt;    &lt;li&gt;Database Servers in your Datasources &lt;/li&gt;    &lt;li&gt;CFHTTP calls &lt;/li&gt;    &lt;li&gt;Web Services &lt;/li&gt;    &lt;li&gt;CFFTP, CFPOP, CFEXCHANGEMAIL, CFIMAP, CFMAIL &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Plus any other tag, CFX tag, java class that allows you to connect to a remote server.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This has never really caused us any major issues, occasionally we had had a customer complain that CFHTTP calls have mysteriously stopped working, or that they could no longer connect to their payment gateway after the provider made some updates, but it has been so rare that restarting CF was an acceptable solution.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Recently we got a notice from our payment gateway provider (SagePay formerly ProtX) telling us that their IP addresses would change. Knowing this would affect CF and that we have several customers who also used SagePay I knew we would have to restart CF on every server to make sure their ecommerce stores did not break.&lt;/p&gt;  &lt;p&gt;This prompted me to look into this problem, find out why the JRE cached DNS look-ups and see if I could change it.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After some investigation I learned that the class used to lookup host names for HTTP operation is the &lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html&quot; target=&quot;_blank&quot;&gt;Java InetAddress class&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If You read the above page you can see that the result of positive host name resolutions is cached forever, it also advises how to override the default behaviour with the following property.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre style=&quot;border-bottom: #ff8000 1px solid; border-left: #ff8000 1px solid; padding-bottom: 5px; background-color: #ffff80; min-height: 40px; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ff8000 1px solid; border-right: #ff8000 1px solid; padding-top: 5px&quot;&gt;&lt;pre style=&quot;background-color: #ffff80; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;&lt;strong&gt;networkaddress.cache.ttl&lt;/strong&gt;
&lt;/pre&gt;&lt;pre style=&quot;background-color: #ffff80; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;Indicates the caching policy for successful name lookups from the name service. The value is specified as as integer to indicate the number of seconds to cache the successful lookup. The default setting is to cache for an implementation specific period of time. &lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;In a standard ColdFusion installation you would find this in the following file:-&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;C:\ColdFusion8\runtime\jre\lib\security\java.security&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;If you are using a custom JRE in a J2EE type installation then the path may be something like:-&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;C:\Program Files\Java\jdk1.6.0_12\jre\lib\security\java.security&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;In a CF multi-server installation:-&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;C:\JRun4\jre\lib\security\java.security&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Find the following line&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;
    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;#networkaddress.cache.ttl=-1 &lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;and change it to&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;
    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;networkaddress&lt;span style=&quot;color: #ff0000&quot;&gt;.&lt;/span&gt;cache&lt;span style=&quot;color: #ff0000&quot;&gt;.&lt;/span&gt;ttl=14400&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;This sets the TTL to 14400 seconds (4 hours).&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Now you will note that there are various warnings about DNS cache poisoning and the security manager which may scare you. So also note that InetAddress by default resolves against localhost, so if there was a cache poisoning problem then the problem is with your local machine or DNS server thus any application that resolves DNS lookup-up against localhost will be affected, which includes ASP, PHP, local services etc, so ColdFusion/Java is really not where you area of concern should be when it comes to DNS, but rather that your local machine is secure and that your DNS server is protected against cache&amp;#160; poisoning. Plus the problem would still exist when you restart CF anyway, and this is probably a fairly common occurrence&amp;#160; for most people, so I personally would not worry about it and I think this is a pretty daft and pointless reason for this default setting. Some may disagree, but hey that&apos;s their prerogative.&lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 16 Apr 2010 15:22:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2010/4/16/Fix-the-DNS-caching-in-ColdFusion</guid>
				
			</item>
			
			<item>
				<title>Microsoft Access DSN&apos;s no longer working after upgrading to ColdFusion 9</title>
				<link>http://russ.michaels.me.uk/index.cfm/2010/3/5/Microsoft-Access-DSNs-no-longer-working-after-upgrading-to-ColdFusion-9</link>
				<description>
				
				&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I upgraded a CF8 server to CF9 the other day and thought everything had gone fine, but today I received an email from a user saying his Microsoft Access DSN was no longer working.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The error was:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre style=&quot;border-bottom: #ff0000 1px solid; border-left: #ff0000 1px solid; padding-bottom: 5px; background-color: #ffff80; min-height: 40px; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ff0000 1px solid; border-right: #ff0000 1px solid; padding-top: 5px&quot;&gt;&lt;blockquote&gt;&lt;pre style=&quot;background-color: #ffff80; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;[Macromedia][SequeLink JDBC Driver]TCP/IP error, connection refused&lt;/pre&gt;&lt;/blockquote&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;First course of action was to google the error as usual, which turned up nothing useful, so then started my own investigations using a bit of common sense.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;I checked the SequeLink ODBC services and they were running, so I tried to restart and they would not.&lt;/p&gt;

&lt;p&gt;It was at this point that I noticed all the CF8 services were still running, which was odd, because while CF9 leaves CF8 intact it should disable and stop all the services. This has been the case since CF7 in fact that the previous version is left intact.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Thinking back on my install I remembered CF informing me that it had detected CF8 was installed and had changed a couple of ports for some reason, I thought nothing of it at the time as I presumed it would not cause a problem, but in hindsight I should have known better as whenever CF has ever used alternative ports for anything in the past it has always caused issues.&lt;/p&gt;

&lt;p&gt;I also did not stop all the CF8 services prior to installing CF9, as the installer always does this for you anyway, but I guess in this case it did not and thus detected a conflict. So a lesson learned there, always stop all services prior to an upgrade.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;So anyway I was sure the problem was with the ODBC service, so the next step was to hunt for the tcp settings, this actually proved to be quite simple in the end.&lt;/p&gt;

&lt;p&gt;I first checked the windows service and see where the exe file is located, which pointed me to
  &lt;br /&gt;D:\ColdFusion9\db\slserver54\bin\swagent.exe &amp;quot;ColdFusion 9 ODBC Agent&amp;quot;

  &lt;br /&gt;Ah now my memory was starting to clear, this is where the SeqeuLink drivers are.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Look for config files that may contain tcp port settings.
    &lt;br /&gt;This led me to the following file

    &lt;br /&gt;&lt;em&gt;D:\ColdFusion9\db\slserver54\cfg\swandm.ini&lt;/em&gt;&lt;/li&gt;

  &lt;li&gt;Now look for TCP port references, which led me the following lines in this file
    &lt;br /&gt;&lt;em&gt;ServiceConnectInfo=tcp://LOCALHOST.19999
      &lt;br /&gt;ServiceConnectInfo=tcp://LOCALHOST.20000

      &lt;br /&gt;&lt;/em&gt;&lt;/li&gt;

  &lt;li&gt;I then compared this to the CF8 settings, which showed
    &lt;br /&gt;&lt;em&gt;ServiceConnectInfo=tcp://LOCALHOST.19997
      &lt;br /&gt;ServiceConnectInfo=tcp://LOCALHOST.19998

      &lt;br /&gt;&lt;/em&gt;&lt;/li&gt;

  &lt;li&gt;So clearly CF had indeed changed the ports due to a conflict. So I simply set the ports back to 19997 and 19998 in that order, stopped and disabled all the CF8 services, and started the CF9 ODBC services and voila everything was fixed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;So what initially seemed like it was going to be PITA problem actually only me less and 1 hour to resolve, and most of that was spent googling for a solution and finding nothing. Once I actually started my own investigation it actually took less than 30 minutes to diagnose and resolve, sods law.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;If you are having some other type of SequeLink ODBC service errors that are not fixed by my solution then the following TechNote may also help you out. 
  &lt;br /&gt;&lt;a title=&quot;http://kb2.adobe.com/cps/188/tn_18800.html&quot; href=&quot;http://kb2.adobe.com/cps/188/tn_18800.html&quot;&gt;http://kb2.adobe.com/cps/188/tn_18800.html&lt;/a&gt;&lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 05 Mar 2010 18:23:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2010/3/5/Microsoft-Access-DSNs-no-longer-working-after-upgrading-to-ColdFusion-9</guid>
				
			</item>
			
			<item>
				<title>Cumulative Hot Fix 1 for Coldfusion 9</title>
				<link>http://russ.michaels.me.uk/index.cfm/2010/2/22/Cumulative-Hot-Fix-1-for-Coldfusion-9</link>
				<description>
				
				&lt;p&gt;Technote here : &lt;a title=&quot;http://kb2.adobe.com/cps/825/cpsid_82536.html&quot; href=&quot;http://kb2.adobe.com/cps/825/cpsid_82536.html&quot;&gt;http://kb2.adobe.com/cps/825/cpsid_82536.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bizzarely I cannot find any reference to this hotfix or tech note anywhere on the Adobe site, it is not on the below ColdFusion hotfixes or updates pages at the time of writing this, and is not in any of the ColdFusion RSS feeds. So not sure how people are supposed to find out about this. Very poor job Adobe, tut tut. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.adobe.com/support/coldfusion/downloads_updates.html&quot;&gt;http://www.adobe.com/support/coldfusion/downloads_updates.html&lt;/a&gt;    &lt;br /&gt;&lt;a href=&quot;http://kb2.adobe.com/cps/402/kb402604.html&quot;&gt;http://kb2.adobe.com/cps/402/kb402604.html&lt;/a&gt;&lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 22 Feb 2010 16:56:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2010/2/22/Cumulative-Hot-Fix-1-for-Coldfusion-9</guid>
				
			</item>
			
			<item>
				<title>Security Alert! Sites hacked via upload scripts</title>
				<link>http://russ.michaels.me.uk/index.cfm/2009/9/18/Security-Alert-Sites-hacked-via-upload-scripts</link>
				<description>
				
				&lt;p&gt;SECURITY ALERT!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There has been an increase in the past few days of sites being hacked via file upload scripts, particularly a number of high profile ColdFusion based sites.&lt;/p&gt;  &lt;p&gt;The hacker gets in by uploading a CFM, ASP, PHP or other supported file type to the server and executing the file, thus escalating his access.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you have any publicly accessible areas of your site where files can be uploaded then you should make sure you are not vulnerable, make sure that you are validating allowed uploaded file types and not allowing executable files to be uploaded. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In particular you should pay attention to things like image uploads on forums or other applications which people seem to think are safe because it only allows images to be upload. Many scripts will actually accept the uploaded file to the final destination folder before validating it and then deleting it if it is not valid, thus giving a window of opportunity for the file to be executed.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What happens is that the hacker uses a load testing tool that constantly executes the URL on your site where he knows his file will be uploaded (e.g. mysite.com/files/xyz.cfm), this is done many times a second, so when he then uploads the file it will get executed in those few milliseconds before it is deleted.&lt;/p&gt;  &lt;p&gt;To avoid this scenario you should perform checks prior to accepting the upload, or upload the file to a temp location first that the hacker cannot access and then move it to the destination folder once it has been verified.&lt;/p&gt; 
				</description>
				
				<category>News &amp; Gossip</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 18 Sep 2009 11:33:45 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2009/9/18/Security-Alert-Sites-hacked-via-upload-scripts</guid>
				
			</item>
			
			<item>
				<title>ColdFusion 9 Tutorials and Resources</title>
				<link>http://russ.michaels.me.uk/index.cfm/2009/7/17/ColdFusion-9-Tutorials-and-Resources</link>
				<description>
				
				&lt;p&gt;I was about the start compiling a list of useful links to info and tutorials for CF9 and CFBuilder, but it seems someone has beat me to it, so rather than re-invent the wheel I will just link to this chaps page and save myself some work :-) If you are looking for find out what is new in CF9 and how to do it, this is worth reading.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#CFLanguageEnhancement&quot;&gt;CFML Language Enhancements Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#CFScriptEnhancement&quot;&gt;CFScript Enhancement Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#CFSAAS&quot;&gt;ColdFusion As a Serveice Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#ORM&quot;&gt;Hibernate-based ORM Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#CFANDMS&quot;&gt;Microsoft SharePoint &amp;amp; Office Interoperability Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#JEEPortlets&quot;&gt;Native JEE Portlets Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#UIControls&quot;&gt;Enhance and New UI Controls Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#Caching&quot;&gt;Advance Caching Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#SolrLucene&quot;&gt;Apache Solr / Lucene Integration Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#ServerManager&quot;&gt;Server Management Tool Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.akbarsait.com/cf9tutorials.cfm#FlexAndAIR&quot;&gt;Flex/AIR Integration Tutorials&lt;/a&gt;&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;A few of my favourite new features are below, of course I tend to look at things from a hosts perspective these days rather than a developer seeing as I don&amp;#39;t do a lot of coding anymore.&lt;/p&gt;  &lt;p&gt;Most of these improvements are especially great for me because I actually had discussion with Adobe some years ago about about what improvements needed to be made to ColdFusion to make it more suitable for shared hosting and explained how they needed to work, and these are areas I specifically addressed, so it seems that finally they did listen to me.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;/enclosures/cf9undl.png&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/enclosures/cf9undl_image_thumb.png&quot; style=&quot;display: inline&quot; title=&quot;image&quot; alt=&quot;image&quot; align=&quot;right&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;b&gt;View Undelivered Mail        &lt;br /&gt;&lt;/b&gt;This new feature allows you to browse mail sitting in the undelivered folder and then delete or respool them. This is handy for manual checking or on a dev machine. Currently my company has a custom script that automatically respools all undelivered mail for 24 hours, and then deletes them, which is very useful in a shared hosting environment otherwise the undelivered folder regularly fills up. It is a shame Adobe didn&amp;#39;t have the foresight to add this kind of automation as well, but at least the viewer allows an easy way to find missing emails. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Application Specific Datasources        &lt;br /&gt;&lt;/b&gt;This is a real code saver and somewhat of a security benefit as well. With this new &amp;quot;this.datasource&amp;quot; application property to can set an application wide datasource, thus negating the need to specify the DSN in every query. A full review of this feature can be found on &lt;a href=&quot;http://www.bennadel.com/blog/1642-learning-coldfusion-9-application-specific-data-sources.htm&quot; target=&quot;_blank&quot;&gt;Ben Nadel&amp;#39;s blog&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Server Manager        &lt;br /&gt;&lt;/b&gt;ColdFusion 8 introduced server monitoring for single and multiple servers via a Flex based app which provided access to all sorts of ColdFusion internals, alerts, proactive problem management, and more.       &lt;br /&gt;ColdFusion 9 takes this a big step further with a new tool called &amp;quot;ColdFusion Server Manager&amp;quot;. This AIR based application allows you to monitor as many servers as needed (including individual ColdFusion instances on a multi-instance configuration) and even offers pop-up alerts when issues occur, it allows for remote server configuration (define a data source, for example), it also allows for settings to be applied to multiple servers at once, it can clear the template caches, it can upload hot-fixes to one or more servers, and it even allows you to select two ColdFusion servers to compare their configuration settings, highlighting any differences between them.       &lt;br /&gt;Oh, and before you ask, here are answers to the three most commonly asked questions.       &lt;br /&gt;      &lt;br /&gt;      &lt;ol&gt;       &lt;li&gt;No, this is not a separately sold utility, it is part of ColdFusion itself (and installed via a link in the ColdFusion Administrator). &lt;/li&gt;        &lt;li&gt;ColdFusion Server Manager uses APIs added to ColdFusion 9, so no, this will not work with ColdFusion 8 or earlier. &lt;/li&gt;        &lt;li&gt;Adobe have not made any decisions yet as to product edition, so no decision as to whether this is an Enterprise only feature or not. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Server Security&lt;/b&gt;      &lt;br /&gt;One of my big issues has always been ColdFusion&amp;#39;s security, or rather lack thereof. You need the enterprise edition to get security sandboxes and these only sandbox CFML code, if someone writes some Java code into their CFML pages they can completely bypass the sandbox and do whatever they like, which actually makes ColdFusion one of the most insecure application servers out there in a shared hosting environment as PHP, ASP and .NET do not suffer from this problem.      &lt;br /&gt;This has supposedly now been addressed with ColdFusion 9 now allowing you to restrict access to certain JAVA functionality. I have not yet looked into this, and as no-one else seems to have written an article on particular area yet I may as well do so, so a more detailed tutorial ont his subject will be coming soon.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;64bit ColdFusion for all&lt;/b&gt;      &lt;br /&gt;Up till now, 64bit ColdFusion has only been available to ColdFusion Enterprise customers. This will (thankfully) change in &lt;a href=&quot;http://labs.adobe.com/wiki/index.php/Centaur&quot;&gt;ColdFusion 9&lt;/a&gt;, and all customers will have access to 32bit or 64bit versions, regardless of edition. Groovy!&lt;/li&gt; &lt;/ul&gt; 
				</description>
				
				<category>News &amp; Gossip</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 17 Jul 2009 15:33:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2009/7/17/ColdFusion-9-Tutorials-and-Resources</guid>
				
			</item>
			
			<item>
				<title>ColdFusion 9 and ColdFusion Builder BETA now available for download</title>
				<link>http://russ.michaels.me.uk/index.cfm/2009/7/13/ColdFusion-9-and-ColdFusion-Builder-BETA-now-available-for-download</link>
				<description>
				
				&lt;p&gt;&amp;#160;&lt;img style=&quot;display: block; float: none; margin-left: auto; margin-right: auto&quot; alt=&quot;http://www.pg100.com/riutort/blog/images/centaur_rv-4_black_white.png&quot; src=&quot;http://www.pg100.com/riutort/blog/images/centaur_rv-4_black_white.png&quot; width=&quot;557&quot; height=&quot;257&quot; /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Today, Adobe are announcing a new beta version of Adobe ColdFusion 9 software, the premiere server-side framework, runtime, and language for building HTML-based or rich Internet applications (RIAs). By extrapolating complex tasks into fewer lines of code, Adobe ColdFusion 9 enables you to build Internet applications faster and easier than with any other technology.&lt;/p&gt;  &lt;p&gt;In tandem, they are introducing a new ColdFusion development tool: Adobe ColdFusion Builder(TM), available in beta today. Adobe ColdFusion Builder is an Eclipse(R)-based IDE for ColdFusion development that is deeply integrated with ColdFusion 9. Now you can manage your entire ColdFusion development cycle, from concept to production, with one easy-to-use tool. &lt;/p&gt;  &lt;p&gt;By providing a highly customizable environment, Adobe ColdFusion Builder helps you to develop ColdFusion applications faster than ever before.&lt;/p&gt;  &lt;p&gt;These beta versions of ColdFusion 9 and ColdFusion Builder will enable you to:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Develop and manage applications faster and easier than ever before&lt;/li&gt;    &lt;li&gt;Create RIAs quickly and easily with ColdFusion and the Adobe Flash(R) Platform&lt;/li&gt;    &lt;li&gt;Integrate applications across a multitude of technologies in enterprise environments&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To download the beta of ColdFusion Builder and get started today, &lt;/p&gt;  &lt;p&gt;visit &amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.adobe.com/go/coldfusion_builder_beta_download?sdid=EUSXS&quot;&gt;http://www.adobe.com/go/coldfusion_builder_beta_download?sdid=EUSXS&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To download the ColdFusion 9 beta, visit &amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.adobe.com/go/coldfusion_beta_download?sdid=EUSXT&quot;&gt;http://www.adobe.com/go/coldfusion_beta_download?sdid=EUSXT&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you&apos;re interested in learning more about ColdFusion 9 or ColdFusion Builder, register to attend an eSeminar at no charge &amp;gt; &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.adobe.com/cfusion/event/index.cfm?event=detail&amp;amp;id=1345643&amp;amp;loc=en_us&amp;amp;sdid=EUSXR&quot;&gt;http://www.adobe.com/cfusion/event/index.cfm?event=detail&amp;amp;id=1345643&amp;amp;loc=en_us&amp;amp;sdid=EUSXR&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Plus, visit Adobe MAX 2009 in Los Angeles for highly technical &lt;/p&gt;  &lt;p&gt;sessions that can help you learn these tools &amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://max.adobe.com?sdid=EUSXU&quot;&gt;http://max.adobe.com?sdid=EUSXU&lt;/a&gt;&lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 13 Jul 2009 13:54:14 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2009/7/13/ColdFusion-9-and-ColdFusion-Builder-BETA-now-available-for-download</guid>
				
			</item>
			
			<item>
				<title>FCKEditor Security threat in ColdFusion 8</title>
				<link>http://russ.michaels.me.uk/index.cfm/2009/7/6/FCKEditor-Security-threat-in-ColdFusion-8</link>
				<description>
				
				&lt;p&gt;Recent postings on &lt;a href=&quot;http://isc.sans.org/diary.html?storyid=6715&quot; target=&quot;_blank&quot;&gt;SANS&lt;/a&gt; and &lt;a href=&quot;http://www.theregister.co.uk/2009/07/03/coldfusion_compromise/&quot;&gt;The Register&lt;/a&gt; identify a vulnerability in some ColdFusion 8 installations. It involves the richtext feature found in the cftexarea tag. This TAG actually implements an open source rich text editor called &lt;a href=&quot;http://www.fckeditor.net/&quot; target=&quot;_blank&quot;&gt;FCKEditor&lt;/a&gt;. &lt;a href=&quot;http://www.fckeditor.net/&quot; target=&quot;_blank&quot;&gt;FCKEditor&lt;/a&gt; has functionality built in to handle file uploads and file management but this feature should be disabled in the version embedded in CF server. The problem lies in that in some cases the connector that runs this feature is actually turn on.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Is your connector enabled, to find out navigate to the following folder on your server.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;i&gt;CFIDE\scripts\ajax\FCKeditor\editor\filemanager\connectors\cfm&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;and Look at the config.cfm file. and see if the connector is on (config.enabled).&lt;/p&gt;  &lt;p&gt;If enabled, this means a hacker might be able to directly call the filemanager system to upload files and take control of the server. FCKEditor has had some history on being exploited by this type of attack.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;div style=&quot;border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; max-height: 200px; font-size: 8pt; cursor: text&quot;&gt;   &lt;pre style=&quot;border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100.16%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; height: 64px; color: black; font-size: 8pt&quot;&gt;    &lt;span style=&quot;color: #008000&quot;&gt;// What the user can do with this connector&lt;/span&gt;&lt;br /&gt;    Config.ConfigAllowedCommands             = &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;QuickUpload,FileUpload,GetFolders,GetFoldersAndFiles,CreateFolder&amp;quot;&lt;/span&gt; ;&lt;/pre&gt; &lt;/div&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Solutions:&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;1) Turn off the connector so that the filemanagement and file upload features can&amp;#39;t work. Do this by commenting it out.&lt;/p&gt;&lt;p&gt;2) Just restrict what the filemanager can do, see code above, remove the fucntions you do not want to allow. &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;3) To be completely safe, delete the entire filemanager directory found under &amp;quot;CFIDE\scripts\ajax\FCKeditor\editor&amp;quot;. The embedded version of FCKeditor for CF doesn&amp;#39;t and really shouldn&amp;#39;t use this feature. So removing those files completely is the safest thing to do. Be mindful that updates to CF might re-introduce those files and naturally re-open the problem. You can avoid this by making the file/folder read only so that it cannot be updated.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Please note that if your host is secure and runs sites so that they cannot read/write files outside of their own root, then any attack should only be localised to the attacked site and not the whole server. &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;At BlueThunder/CFMX Hosting we employ Security sandboxes for every site restricting access and PHP/ASP etc are also restricted in the same way using server security, so it should not be possible for any uploaded code to access paths outside of that website. &lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;If your host allows CFFILE by default without a sandbox or only runs CF Standard edition, then beware as their entire server is vulnerable to this and just about any other file upload attack as well. &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The Adobe Product Security Incident Response Team (PSIRT) has posted an official response to this issue &lt;a href=&quot;http://blogs.adobe.com/psirt/2009/07/potential_coldfusion_security.html&quot;&gt;here&lt;/a&gt;, a patch is expected soon, but in the mean time make sure you are not at risk.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;UPDATE: hotfix now available &lt;a href=&quot;http://www.adobe.com/support/security/bulletins/apsb09-09.html&quot;&gt;HERE &lt;/a&gt; &lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 06 Jul 2009 18:46:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2009/7/6/FCKEditor-Security-threat-in-ColdFusion-8</guid>
				
			</item>
			
			<item>
				<title>CF on IIS7 &amp;ndash; internal server error</title>
				<link>http://russ.michaels.me.uk/index.cfm/2009/6/30/CF-on-IIS7-ndash-internal-server-error</link>
				<description>
				
				&lt;p&gt;As you will see elsewhere on my blog, I have recently setup windows 2008 server 64bit as my new desktop. For the most part everything has worked ok, but there have been a few interesting quirks.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;One of these quirks was that any new site I setup in IIS7 resulted in a &amp;quot;500 internal server error&amp;quot; identifying the AboMapperCustom wildcard application mapping for ColdFusion as the cause.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now my Default Web Site from where I run the CFADMIN was working fine, so I was rather perplexed as to why other sites did not work when they seemed to be setup exactly the same.&lt;/p&gt;  &lt;p&gt;Now I am actually using DotNotPanel on my local machine to setup and manage sites, so this may be a contributing factor, but still the cause of the problems may affect others, so hopefully the solutions may help.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Using the Web Server Configuration Tool I tried to disable then enable CFML on the server several times to no avail, then when checking the Handler Mappings&amp;quot; for the site, I noticed that the wildcard application map for CF was actually there twice, which I am sure may well have been a contributing factor, so I removed one of them. I also then noticed this alert on the handler mappings page.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style=&quot;border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px&quot;&gt;   &lt;pre style=&quot;border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100.16%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; height: 72px; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;p&gt;This site is in an application pool that is running in classic mode, 
so you can manage ISAPI extension and native modules that are mapped to &lt;/p&gt;&lt;p&gt;paths. You must manage managed handlers (system.web/httphandlers) directly &lt;/p&gt;&lt;p&gt;in the configuration files.&lt;/p&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Now if I recall &amp;quot;classic mode&amp;quot; means 32bit, so this seemed likely to be causing a problem, although I am not sure how I ended up using this application pool by default.&lt;/p&gt;

&lt;p&gt;Anyway to change this, open the IIS manager, find your site, right click and select &lt;/p&gt;

&lt;p&gt;Manage Web &#xe2;??&amp;gt; Advanced Settings&lt;/p&gt;

&lt;p&gt;And change the application pool at the top to &amp;quot;Default Application Pool&amp;quot;. In my case this fixed the problem and the alert went away, hopefully this may help someone else having issues with IIS7 and CF.&lt;/p&gt; 
				</description>
				
				<category>Windows 2008 Server</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 30 Jun 2009 15:04:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2009/6/30/CF-on-IIS7-ndash-internal-server-error</guid>
				
			</item>
			
			<item>
				<title>CFAjaxProxy Security errors</title>
				<link>http://russ.michaels.me.uk/index.cfm/2009/6/10/CFAjaxProxy-Security-errors</link>
				<description>
				
				&lt;p&gt;This was a very odd problem I had on a clients site this week. Whenever he used the &amp;lt;CFAjaxProxy&amp;gt; tag on a page, the page simply stopped rendering at the point where the tag appeared. No error appeared on the page or in the ColdFusion logs.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The reason no error occurred turned out to be caused by the application.cfc, he has an OnError function that was doing a cfabort.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;pre class=&quot;csharpcode&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;cffunction&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;onError&amp;quot;&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;returnType&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;void&amp;quot;&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;output&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;cfargument&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;exception&amp;quot;&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;required&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;cfargument&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;eventname&amp;quot;&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;string&amp;quot;&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;required&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;rem&quot;&gt;&amp;lt;!--- &amp;lt;cfdump var=&amp;quot;#ARGUMENTS#&amp;quot; /&amp;gt; ---&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;cfabort&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;cffunction&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;  &lt;pre class=&quot;csharpcode&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;pre class=&quot;csharpcode&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p&gt;Once I got rid of this problem, the following error appeared.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;pre class=&quot;csharpcode&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p style=&quot;width: 95%; height: 108px&quot; class=&quot;code&quot;&gt;Security: The requested template has been denied access to C:\ColdFusion8\wwwroot\WEB-INF\cfclasses\cfcheckUsername2ecfc1070071758.class.   &lt;br /&gt;The following is the internal exception message: access denied (java.io.FilePermission C:\ColdFusion8\wwwroot\WEB-INF\cfclasses\cfcheckUsername2ecfc1070071758.class write)&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;So yet another path that needs to be added to the sandbox for every site in order for Ajax to work. Really there is no reason why this should be so as the classes should be created by CF internally and no special permissions should be required by the application. &lt;/p&gt;  &lt;p&gt;The number of paths now required in each sandbox for CF8 in order for all tags and functions to work correctly is ridiculous. I have enlightened Adobe how things should work in shared hosting environments and all the paths that do not get inherited by sandboxes when applied at a root level, so here&amp;#39;s hoping that CF9 will finally be shared hosting friendly.&lt;/p&gt;  &lt;p&gt;&lt;style type=&quot;text/css&quot;&gt;  .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, &quot;Courier New&quot;, courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Ajax</category>				
				
				<pubDate>Wed, 10 Jun 2009 12:34:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2009/6/10/CFAjaxProxy-Security-errors</guid>
				
			</item>
			
			<item>
				<title>ColdFusion 8 performance Issues when using Java 6</title>
				<link>http://russ.michaels.me.uk/index.cfm/2009/3/19/ColdFusion-8-performance-Issues-when-using-Java-6</link>
				<description>
				
				&lt;p&gt;&lt;img src=&quot;/enclosures/ColdFusion8performanceIssueswhenusingsec_9943/image_thumb.png&quot; style=&quot;border-width: 0px&quot; alt=&quot;image&quot; align=&quot;left&quot; border=&quot;0&quot; width=&quot;80&quot; height=&quot;76&quot; /&gt; For the last few weeks on one of our ColdFusion 8 servers I have been noticing an increase in performance issues. Requests would regularly start taking longer and timing out and it would often be happening to all the running requests and not just some. Strangely this also seemed to happen whenever I modified a security sandbox, which would usually take a long time to process the request and would also cause all other requests to slowdown and timeout as above.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;/enclosures/ColdFusion8performanceIssueswhenusingsec_9943/image_3.png&quot;&gt;&lt;img src=&quot;/enclosures/ColdFusion8performanceIssueswhenusingsec_9943/image_thumb_3.png&quot; style=&quot;border: 0px none &quot; alt=&quot;image&quot; align=&quot;right&quot; border=&quot;0&quot; width=&quot;244&quot; height=&quot;184&quot; /&gt;&lt;/a&gt;One common factor I noticed while stack tracing these requests with &lt;a href=&quot;http://www.shareit.com/product.html?productid=300046617&amp;amp;cookies=1&amp;amp;affiliateid=200036654&quot; target=&quot;_blank&quot;&gt;FusionReactor&lt;/a&gt; and the server monitor was that they all seemed to be using Fusebox and there was a lot of class loading going on. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Now I know that frameworks like Fusebox and ModelGlue can be slow to initialise the first time as they have a lot of classes to load, but this shouldn&amp;#39;t happen again unless an application is re-initialised or CF is restarted.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I had &lt;a href=&quot;http://www.carehart.org&quot; target=&quot;_blank&quot;&gt;Charlie Arehart&lt;/a&gt; helping me look at this issue and he reminded me of the problem with Java 6, which I had totally forgotten about. For all the other performance improvements and increased functionality in Java 6, it introduced a bug in the class loader that causes substantially slower class loading. You can see a &lt;a href=&quot;http://forum.java.sun.com/thread.jspa?threadID=5218663&quot;&gt;discussion of the problem on Sun&amp;#39;s forums&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;This bug will affect any application using a lot of CFC&amp;#39;s, especially those using frameworks such as fusebox, ModelGlue, Transfer etc, due to the large number of classes that must be loaded as a result. So for those of you not caching your CFC&amp;#39;s, perhaps it time to start doing so.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;This lead us to the conclusion that whenever you make any changes to a security sandbox this causes all existing classes to be reloaded, which seemed to be confirmed by the stack traces which did show a lot of class loading happening in the slow running processes.&lt;/p&gt; &lt;p&gt;As the aforementioned bug is supposed to have been fixed in the current release of Java 6, I decided to go with Charlie&amp;#39;s suggestion and give this a try and see if it resolved the problem. So I downloaded and installed the &lt;a href=&quot;https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u12-oth-JPR@CDS-CDS_Developer&quot; target=&quot;_blank&quot;&gt;JDK 6 Update 12&lt;/a&gt;, set ColdFusion to use this version and so far I have not been able to repeat the previous issues when modifying security sandboxes, so it seems as though this solution has worked. It is however early days as I only made the change last night, so time will tell if this gives an overall performance boost to ColdFusion in general.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Updating ColdFusion to use a newer version of Java is very straight forward, so here are the steps for anyone interested in doing so.&lt;/p&gt; &lt;p&gt;Download the latest version of the JDK (or whatever version you need) from &lt;a href=&quot;http://java.sun.com/javase/downloads/index.jsp&quot; title=&quot;http://java.sun.com/javase/downloads/index.jsp&quot;&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Now install this on your server in your desired location, but don&amp;#39;t forget that you may need to setup additional permissions if you are not running ColdFusion in the standard configuration and have it running under anything other than SYSTEM.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;now you need to edit your jvm.config file and modify the java.home path to point to the newly installed JDK.&lt;/p&gt; &lt;p&gt;On a standard installation this file can be found in &lt;i&gt;c:\coldfusion8\runtime\bin\jvm.config,&lt;/i&gt; if you are using a J2EE or multi-server installation then your path will be different.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Comment out the existing java.home by adding a # to the start of the line and then enter your new path like so:-&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class=&quot;csharpcode-wrapper&quot;&gt; &lt;div style=&quot;border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; font-size: 8pt; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #f4f4f4&quot;&gt;&lt;pre style=&quot;border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #f4f4f4&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;#java.home=C:/ColdFusion8/runtime/jre&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #f4f4f4&quot;&gt;java.home=C:/Program Files/Java/jdk1.6.0_12/jre&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Please note the path is using back slashes and not the default forward slashes that you will get if you copy and paste the path from windows explorer. This is required or ColdFusion will not start. If you are running multiple instances of ColdFusion with each using their own JVM.config then you will need to make this change in each jvm.config file.&lt;/p&gt; &lt;p&gt; &lt;style type=&quot;text/css&quot;&gt;.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, &quot;Courier New&quot;, courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } &lt;/style&gt; &lt;/p&gt; &lt;p&gt;Now simply restart ColdFusion, then login to your cfadministrator and go to the system information page, where it shows which version of Java is being used, which should now reflect your changes.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;ColdFusion 8 Server Monitor&lt;/h3&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;/enclosures/ColdFusion8performanceIssueswhenusingsec_9943/image_4.png&quot;&gt;&lt;img src=&quot;/enclosures/ColdFusion8performanceIssueswhenusingsec_9943/image_thumb_4.png&quot; style=&quot;border: 0px none &quot; alt=&quot;image&quot; align=&quot;right&quot; border=&quot;0&quot; width=&quot;244&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;I also wanted to mention that while trying to diagnose these issues I tried using the built in server monitor, which unfortunately caused more of a hindrance than a help. It seems that enabling the Profiling and Memory Tracking on a live production server may not a good idea and could well bring it to its knees within minutes. While these options were enabled the JRUN memory usage started to climb and continued to climb until the max 1024mb had been consumed, at which point CF will stop responding. I also noted the memory tracking will also incorrectly report the memory usage of complex FuseBox variables, stating that they are several TerraBytes in size, so this seems to imply that again the problems were related to frameworks and class loading.&lt;/p&gt; &lt;p&gt;I have however enabled the server monitor briefly since updating Java and the memory consumption problem does seem to have gone but the incorrect reporting&amp;nbsp; of memory usage in application and request scopes is still there.&lt;/p&gt; &lt;p&gt;Sadly I have never been able to get the &amp;quot;Sessions by memory usage&amp;quot; or &amp;quot;CF Threads by memory usage&amp;quot; to work, they have always been blank, so whether these have the same issues I do not know. &lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 19 Mar 2009 12:48:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2009/3/19/ColdFusion-8-performance-Issues-when-using-Java-6</guid>
				
			</item>
			
			<item>
				<title>The new face of CFMX Hosting</title>
				<link>http://russ.michaels.me.uk/index.cfm/2009/2/19/The-new-face-of-CFMX-Hosting</link>
				<description>
				
				&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://www.bluethunderinternet.com/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/enclosures/ThenewfaceofCFMXHositng_10D19/btiv2.gif&quot; style=&quot;border-width: 0px&quot; alt=&quot;btiv2&quot; border=&quot;0&quot; width=&quot;504&quot; height=&quot;504&quot; /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;For the last 6 years I have been working for Loud-n-clear Ltd, with whom I merged CFMX Hosting back in 2003. After 6 years of feeling like I was banging my head against a brick wall&amp;nbsp; I decided it was time split the companies up again so that I could actually work on growing and expanding CFMX Hosting, and get out of the rut I had found myself in. So In January I left Loud-n-clear, separating CFMX Hosting and taking it with me and launched a new company called &amp;quot;BlueThunder Internet&amp;quot;. This will be the new name of CFMX Hosting, which I am re-branding to be more generic and less CF-centric which I feel will be a positive move in the in this current recession where I don&amp;#39;t think one can afford to restrict oneself to such a small niche especially in such a competive market place as hosting. Plus there is the fact that there is no such thing as &amp;quot;CFMX&amp;quot; any longer since Adobe changed the name back to plain &amp;quot;ColdFusion&amp;quot;, so I have been thinking of changing the name for a while. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;table border=&quot;0&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td align=&quot;middle&quot; width=&quot;300&quot;&gt; &lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://www.openbluedragon.org/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/enclosures/ThenewfaceofCFMXHositng_10D19/image.png&quot; style=&quot;border: 0px none &quot; alt=&quot;image&quot; border=&quot;0&quot; width=&quot;244&quot; height=&quot;53&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt; &lt;td align=&quot;middle&quot; width=&quot;259&quot;&gt;&lt;a href=&quot;http://www.railo.ch/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://www.railo-technologies.com/jmuffin/upload/railo-3-communty-free.gif&quot; border=&quot;0&quot; width=&quot;207&quot; height=&quot;107&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;   &lt;p&gt; While I am still a huge ColdFusion fan it is no longer the only cfkid on the block, so my new company will be specialising in &amp;quot;CFML&amp;quot; and supporting the likes of Railo and BlueDragon as well as ColdFusion and all the other usual technologies. I have become a big fan of Railo of late especially since it is far better suited to the shared hosting environment than ColdFusion with its per site admin interface which means less support tickets and more control for the customer, plus the security side of things is also significantly better.&lt;/p&gt; &lt;p&gt;If you haven&amp;#39;t yet heard about railo or you have heard about it but don&amp;#39;t know why you would want to use it, I strongly recommend heading over to CFMeetup and watching the recent recording of the &lt;a href=&quot;http://www.railo.ch/blog/index.cfm/2009/1/30/Railo-presentation-on-CFMeetup&quot; target=&quot;_blank&quot;&gt;Railo 3.1 Open Source Presentation&lt;/a&gt;, this should give you some idea of how cool Railo is and some of awesome and unique new features it provides, or perhaps like me it will even get you as excited as you used to be about ColdFusion :-)&lt;/p&gt; &lt;p&gt;With the emergence of &lt;a href=&quot;http://www.openbluedragon.org/&quot; target=&quot;_blank&quot;&gt;open BlueDragon&lt;/a&gt; and &lt;a href=&quot;http://www.railo.ch/&quot; target=&quot;_blank&quot;&gt;railo &lt;/a&gt;now also being open source as well, I think this is going to give a much needed boost to CFML as a language and the community at large. Finally CFML is now on equal footings with the likes of PHP as it is now also free to download and use, but with the added advantage of being easier to learn and more powerful, oh and it works better on windows too ;-)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;For those who may be wondering where the name &amp;quot;BlueThunder&amp;quot; came from, it was many many hours of trying to find a domain name that wasn&amp;#39;t already taken and is easy to remember, which is very hard by the way. I had exhausted just about every name using the word &amp;quot;fusion&amp;quot; or &amp;quot;hosting&amp;quot; so I then randomly just decided to start thinking of names of old 8 bit computer games and old TV shows and then I remembered that old show about the helicopter called Blue Thunder, which as well as liking the name I thought was also a bit of a play on words in the same vein as ColdFusion, it has that same feeling of power, so having found a domain name that was free, I snapped it up. You may also notice the new logo might look slightly&lt;style&gt;&lt;!--  /* Font Definitions */  @font-face 	{font-family:&quot;Cambria Math&quot;; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:&quot;Times New Roman&quot;; 	mso-bidi-theme-font:minor-bidi;} span.EmailStyle15 	{mso-style-type:personal; 	mso-style-noshow:yes; 	mso-style-unhide:no; 	mso-ansi-font-size:11.0pt; 	mso-bidi-font-size:11.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:&quot;Times New Roman&quot;; 	mso-bidi-theme-font:minor-bidi; 	color:windowtext;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:&quot;Times New Roman&quot;; 	mso-bidi-theme-font:minor-bidi;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 72.0pt 72.0pt 72.0pt; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Table Normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&quot;Times New Roman&quot;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;  reminiscent  of the original Allaire ColdFusion logo. &lt;/p&gt; 
				</description>
				
				<category>BlueDragon and Railo</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 19 Feb 2009 20:23:00 --0100</pubDate>
				<guid>http://russ.michaels.me.uk/index.cfm/2009/2/19/The-new-face-of-CFMX-Hosting</guid>
				
			</item>
			</channel></rss>