<?xml version="1.0" encoding="utf-8"?>

			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>The No-Dans Club - Server Configuration</title>
			<link>http://www.nodans.com/index.cfm</link>
			<description>ColdFusion, Flex, Ajax and other items of interest</description>
			<language>en-us</language>
			<pubDate>Wed, 22 May 2013 18:25:23 -0700</pubDate>
			<lastBuildDate>Thu, 14 Jun 2012 07:47:00 -0700</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>sipacate@gmail.com</managingEditor>
			<webMaster>sipacate@gmail.com</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>sipacate@gmail.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			
			<itunes:explicit>no</itunes:explicit>
			
			<item>
				<title>How to get Oracle 8i to Start on Windows XP</title>
				<link>http://www.nodans.com/index.cfm/2012/6/14/How-to-get-Oracle-8i-to-Start-on-Windows-XP</link>
				<description>
				
				&lt;h2&gt;Oracle Error - Oracle Not Available&lt;/h2&gt;
&lt;p&gt;
I&apos;m working on a client project that uses an Oracle 8i database. We&apos;ll eventually convert this database to another platform at some point, but for now, we need to make some much needed changes to the existing platform.
&lt;/p&gt;
&lt;p&gt;
Oracle 8i doesn&apos;t seem to run on modern Windows Operating Systems so I installed it on Windows XP. This worked fine until I restarted the machine. Upon restart, the once functioning database service would not open. Connecting to the database gave the error &quot;Oracle not available&quot;.
&lt;/p&gt;
&lt;p&gt;
It turns out, this is a common issue and after researching and exploring various options, I finally got the database to start up with a series of steps.
&lt;/p&gt;
&lt;h3&gt;Here&apos;s what to do:&lt;/h3&gt;

&lt;p&gt;
Since this process involves starting services in a particular order, we need to change the 5 Oracle services below to start up manually: (Administrative Tools &gt; Services ) 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;OracleOraHome81TNSListener&lt;/li&gt;
&lt;li&gt;OracleOraHome81DataGatherer&lt;/li&gt;
&lt;li&gt;OracleOraHome81ClientCache&lt;/li&gt;
&lt;li&gt;OracleOraHome81Agent&lt;/li&gt;
&lt;li&gt;OracleWebAssistant0&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
While you are in there, change the name of your particular database service &quot;OracleServiceWhateverYourServiceNameIs&quot; to Manual also.
&lt;/p&gt;
&lt;p&gt;
After a reboot, start all 5 services in the order listed above. Once all services are up and running, start your database service: &quot;OracleServiceWhateverYourServiceNameIs&quot;
&lt;/p&gt;
&lt;p&gt;
It&apos;ll probably complain with an error afterwards, but that&apos;s ok.
&lt;/p&gt;
&lt;p&gt;
Go to Task Manager and kill the ORACLE.exe process running and restart the service for your database instance: &quot;OracleServiceWhateverYourServiceNameIs&quot;. 
&lt;/p&gt;
&lt;p&gt;
Try to connect to the database. Sometimes the service will be up and ready for service after these steps. If it is not, perform the following steps:
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Database Configuration Assistant ( start&gt;Programs&gt;Oracle-oraHome8i&gt;database administration&gt; database configuration assistant )&lt;/li&gt;
&lt;li&gt;Choose &quot;Change Database Configuration&quot;&lt;/li&gt;
&lt;li&gt;After pressing Next, choose the instance you want to connect to.&lt;/li&gt;
&lt;li&gt;Press next 2 more times and the database will be ready for service then&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
At this point, you should be able to connect to your database with SQLPlus, or any other preconfigured connection. I hope this works as well for you as it worked for me.
&lt;/p&gt; 
				</description>
				
				<category>Software Development</category>
				
				<category>Server Configuration</category>
				
				<pubDate>Thu, 14 Jun 2012 07:47:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2012/6/14/How-to-get-Oracle-8i-to-Start-on-Windows-XP</guid>
				
				
			</item>
			
			<item>
				<title>How to solve error: [Oracle JDBC Driver]Transliteration failed, reason: invalid UTF8 data</title>
				<link>http://www.nodans.com/index.cfm/2012/6/6/How-to-solve-error-Oracle-JDBC-DriverTransliteration-failed-reason-invalid-UTF8-data</link>
				<description>
				
				&lt;p&gt;I got a strange error &quot;[Oracle JDBC Driver]Transliteration failed, reason: invalid UTF8 data&quot; while working on a client system. I spent a reasonable amount of time trying to work out what caused this.
&lt;/p&gt;
&lt;p&gt;
The Oracle database was a restore of an Oracle 8.1.6 system onto the new Oracle XE 11.2. During the import, the character sets changed.
&lt;ul&gt;
&lt;li&gt;export client uses WE8ISO8859P1 character set (possible charset conversion)&lt;/li&gt;
&lt;li&gt;export server uses WE8ISO8859P1 NCHAR character set (possible ncharset conversion)&lt;/li&gt;
&lt;li&gt;import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set&lt;/li&gt;
&lt;li&gt;import server uses AL32UTF8 character set (possible charset conversion)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
So, I&apos;m guessing since the new database did a conversion of NCHARSET from WE8ISO8859P1  to AL16UTF16, the size of the characters threw off something. Thus, there were problems and none of the queries on certain tables worked.
&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;

The DataDirect Oracle Driver that ships with ColdFusion 9 has an error in it. It &lt;a href=&quot;http://knowledgebase.datadirect.com/articles/Article/6051?retURL=%2Fapex%2FKnowledgeSearch&amp;popup=false&quot;&gt;appears the error is fixed and if you have an agreement with the provider, you can download an update&lt;/a&gt;. 

However, I don&apos;t have an agreement so I downloaded fresh Oracle JDBC Drivers to fix the problem. Here&apos;s what I did:
&lt;ul&gt;
&lt;li&gt;Download the drivers here: &lt;a href=&quot;http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html&quot;&gt;http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I used the ojdbc6.jar one.&lt;/li&gt;
&lt;li&gt;Copy the ojdbc6.jar file to /JRun4/lib (or, if you wanna be fancy, put it somewhere else and update the class path in the jvm.config pertaining to the instance you want to update)&lt;/li&gt;
&lt;li&gt;Restart ColdFusion&lt;/li&gt;
&lt;li&gt;Enter the following in the JDBC URL field: jdbc:oracle:thin:username/password@IP.Address.Of.Database.Server:PortOfDatabaseServer:OracleSID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Enter the following in the Driver Class field: oracle.jdbc.driver.OracleDriver&lt;/li&gt;
&lt;li&gt;Add the user name and password in the appropriate boxes&lt;/li&gt;
&lt;li&gt;Save the datasource. It should verify if you did everything correctly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you got an error, remember these things:
&lt;ul&gt;
&lt;li&gt;Usernames, passwords and seemingly the Oracle SID are case sensitive&lt;/li&gt;
&lt;li&gt;The JDBC Url Field is particular and must be exactly right.&lt;/li&gt;
&lt;li&gt;The default port for Oracle is 1521&lt;/li&gt;
&lt;/ul&gt;

&lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>
				
				<category>Server Configuration</category>
				
				<pubDate>Wed, 06 Jun 2012 11:07:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2012/6/6/How-to-solve-error-Oracle-JDBC-DriverTransliteration-failed-reason-invalid-UTF8-data</guid>
				
				
			</item>
			
			<item>
				<title>How to resolve svn: Error setting property &apos;log&apos;:</title>
				<link>http://www.nodans.com/index.cfm/2009/9/29/How-to-resolve-svn-Error-setting-property-log</link>
				<description>
				
				I was trying to check in some changes on the Model-Glue framework and kept getting this error:
&lt;img src=&quot;/images/extras/SVN-Hating-Multi-Line-Comments.jpg&quot; style=&quot;margin: .5em; float: right&quot; /&gt;

&lt;code&gt;
update D:/webroot/ModelGlueTrunk/ModelGlue/gesture -r HEAD --force
    At revision 184.
commit -m &quot;Removed potential recursion in this functionality...&quot; D:/webroot/ModelGlueTrunk/ModelGlue/gesture/helper/HelperInjector.cfc D:/webroot/ModelGlueTrunk/ModelGlue/gesture/helper/IncludeHelperShell.cfc
    Failed to execute WebDAV PROPPATCH
svn: Commit failed (details follow):
svn: At least one property change failed; repository is unchanged
RA layer request failed
svn: Error setting property &apos;log&apos;: 
Could not execute PROPPATCH.
&lt;/code&gt;

I updated from SVN, thinking it to be a synchronization error, but I still got the same error.

I used the &apos;cleanup&apos; or SVN:clean functionality to maybe get the .svn files and such back in to the right condition, but that didn&apos;t help either.

The original SVN Comment I used was: 

&lt;code&gt;
Removed potential recursion in this functionality
Also removed useless cfdump when a helper is attempted to be included but doesn&apos;t have a cfc or cfm extension
&lt;/code&gt;

Can you spot the issue?  I can&apos;t either. What fixed the error:
&lt;code&gt;
    Failed to execute WebDAV PROPPATCH
svn: Commit failed (details follow):
svn: At least one property change failed; repository is unchanged
RA layer request failed
svn: Error setting property &apos;log&apos;: 
Could not execute PROPPATCH.
&lt;/code&gt;

Was changing the multi-line comment to a single line comment. Once the comment was a single line, there was no issue checking it in. I&apos;m not sure what I learned here, but I hope SVN doesn&apos;t REALLY have a problem with multi-line comments, after all, we need those to keep details on what changed! 
				</description>
				
				<category>Subversion</category>
				
				<category>Software Development</category>
				
				<category>Server Configuration</category>
				
				<pubDate>Tue, 29 Sep 2009 07:31:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2009/9/29/How-to-resolve-svn-Error-setting-property-log</guid>
				
				
			</item>
			
			<item>
				<title>ColdFusion 7 error 500 Null  with Custom Tags</title>
				<link>http://www.nodans.com/index.cfm/2008/5/14/ColdFusion-7-error-500-Null--with-Custom-Tags</link>
				<description>
				
				&lt;p&gt;I spent a couple hours diagnosing a 500 Null error. There was little information to go on and 500 Null errors are hard to figure out in general. Let&apos;s hope someone is helped by this.&lt;/p&gt;

&lt;p&gt;The error resulted on a Linux Machine using CF7.02 with no updaters. The code in question was a set of nested custom tags all linked together using cfassociate. I dug through the code looking for any such potential null reference evaluations and chopped out large blocks of code at a time to try get the error to go away. If I took out &lt;strong&gt;enough&lt;/strong&gt; CFML code, the error went away. It really didn&apos;t matter at all WHICH code I took out, just that I took out some mysterious amount. &lt;/p&gt;
&lt;p&gt;The total lines of code in the custom tagset was less than 500 with no loops or anything that would jack up the lines of code when evaluated so this REALLY threw me for a loop.&lt;/p&gt;

&lt;p&gt;Eventually, I updated to the latest updator for CF7 and the error went away. Strangely, there was no mention in the list of updater fixes, but trust me, the error went away. If you are having a similar problem, use &lt;a href=&quot;http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402465&amp;sliceId=1&quot; target=&quot;_new&quot;&gt;ColdFusion MX 7.02 Cumulative Hot Fix 3&lt;/a&gt; or later.&lt;/p&gt;
&lt;p&gt;If you similar stuff going on in your applications, there is a good chance the &lt;a href=&quot;http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402465&amp;sliceId=1&quot; target=&quot;_new&quot;&gt;ColdFusion MX 7.02 Cumulative Hot Fix 3&lt;/a&gt; will sort it out for you.&lt;/p&gt; 
				</description>
				
				<category>Server Configuration</category>
				
				<pubDate>Wed, 14 May 2008 18:09:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2008/5/14/ColdFusion-7-error-500-Null--with-Custom-Tags</guid>
				
				
			</item>
			
			<item>
				<title>Fix for Filezilla Failing to Retrieve Directory Listing</title>
				<link>http://www.nodans.com/index.cfm/2008/4/24/Fix-for-Filezilla-Failing-to-Retrieve-Directory-Listing</link>
				<description>
				
				&lt;p&gt;I use Filezilla FTP client to manage files on many servers. I had a specific Filezilla client that refused to retrieve a directory listing. Other computers could connect to the same server just fine. Thusly I knew it was a client configuration problem.&lt;/p&gt;

&lt;p&gt;I ended up with messages like this:
&lt;pre&gt;
Response:	200 PORT command successful. Consider using PASV.
Command:	LIST
Error:	Connection timed out
Error:	Failed to retrieve directory listing
&lt;/pre&gt;
&lt;/p&gt;
I ran the Filezilla configuration wizard to diagnose the problem. The configuration wizard utility ran for a while reporting success until the very end. After timing out, I received the following messages:
&lt;pre&gt;
Response: 200 PORT command successful
LIST
Response: 150 opening data connection
Response: 503 Failure of data connection.
Server sent invalid reply.
Connection closed
&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;Searching the Internet led to not so helpful posts such as &lt;a href=&quot;http://forum.filezilla-project.org/viewtopic.php?f=2&amp;t=5464&amp;view=next&quot; target=&quot;_new&quot;&gt;&quot;Please read the Network Configuration guide.&quot;&lt;/a&gt;. After analyzing the situation, it turns out the solution isn&apos;t so obvious. 
My Client had the default setting of Connection -&gt; FTP -&gt; Active Mode: Get External IP Address From This URL. Which pointed to &lt;a href=&quot;http://ip.filezilla-project.org/ip.php&quot; target=&quot;_new&quot;&gt;http://ip.filezilla-project.org/ip.php&lt;/a&gt; . This is the source of the problem. If you go to that URL, you will probably get a result of 127.0.0.1. If the Filezilla client needs the external address, and is given 127.0.0.1, then there will be problems indeed!&lt;/p&gt;&lt;p&gt;
If you have a similar problem with Filezilla, and the problem persists even when the Windows Firewall is disabled, here is what you need to do:&lt;/p&gt;


&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;Open Filezilla, go to Edit -&gt; Settings&lt;/li&gt;
&lt;li&gt;Click on Connection -&gt; FTP: Choose Active&lt;/li&gt;
&lt;li&gt;Click on Connection -&gt; FTP -&gt; Active Mode: Select &quot;Ask your operating system for the external IP address&quot;&lt;/li&gt;
&lt;li&gt;Click on Connection -&gt; FTP -&gt; Passive Mode: Choose  Fall Back to Active Mode&lt;/li&gt;
&lt;li&gt;Press OK.&lt;/li&gt;
&lt;/ul&gt;

&lt;/p&gt;
&lt;p&gt;Try connecting to your FTP site once again. Works!&lt;/p&gt;
&lt;p&gt;
&lt;img src=&quot;/images/extras/filezillaconfig.png&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;Update: In some cases, and for reasons unknown, Filezilla just won&apos;t work. I have found that &lt;a href=&quot;http://www.coreftp.com/&quot; target=&quot;_new&quot;&gt;coreFTP&lt;/a&gt; is a nice FTP program that is free Windows software which includes the client FTP features you need.  Features like SFTP (SSH), SSL, TLS, IDN, browser integration, site to site transfers, FTP transfer resume, drag and drop support, file viewing &amp; editing, firewall support, custom commands, FTP URL parsing, command line transfers, filters, and much, much more! &lt;/p&gt;

&lt;p&gt;If Filezilla still does not work for you after you follow the steps above, then install coreFTP and it will work just fine.&lt;/p&gt; 
				</description>
				
				<category>Server Configuration</category>
				
				<pubDate>Thu, 24 Apr 2008 21:28:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2008/4/24/Fix-for-Filezilla-Failing-to-Retrieve-Directory-Listing</guid>
				
				
			</item>
			
			<item>
				<title>Diagnosing Server Issues</title>
				<link>http://www.nodans.com/index.cfm/2008/1/28/Diagnosing-Server-Issues</link>
				<description>
				
				&lt;p&gt;I&apos;ve had the pleasure of working for many diverse employers and clients. A number of times I&apos;ve been on a team working to resolve misbehaving software/servers. Part of the job is digging through logs. Another part is load testing specific workflows looking for knots or bottlenecks in the process. Still another part is analyzing each query for suboptimal performance.&lt;/p&gt;

&lt;p&gt;There can be many factors that contribute to performance problems. &lt;a href=&quot;http://www.alagad.com/go/blog?createdBy=mbrunt&quot; target=&quot;_new&quot;&gt;Mike Brunt, Systems Guru at Alagad&lt;/a&gt;, has the skills to quickly analyze an application and tune it for proper efficiency. Mike has been posting on the Alagad blog for some time now. I find his posts to be informative and to show an uncommon depth on complex topics. Mike has an ability to simply explain tough subjects.&lt;/p&gt;

&lt;p&gt;After reading &lt;a href=&quot;http://www.alagad.com/go/blog-entry/don-t-throw-coldfusion-out-we-can-help&quot; target=&quot;_new&quot;&gt;his latest post&lt;/a&gt;, I was struck by how much I do not know. I understand, at a base level, how the JVM allocates memory and that changing the allocated memory can improve application performance. I don&apos;t pretend to have the experience needed to diagnose problems and fix them by providing more appropriate settings.&lt;/p&gt;

&lt;p&gt;Organizations that rely on critical web applications should pay attention to server performance. While performance problems can be mitigated, to an extent, by increasing the hardware running the system, adding hardware brings additional expenses in the form of hardware, software licenses, maintenance efforts, increased power consumption and less available room in the server racks.&lt;/p&gt;

&lt;p&gt;If you run into server performance issues, keep in mind the professionals in our community that specialize in diagnosing and repairing server performance. There is more to server performance than code and database queries!&lt;/p&gt; 
				</description>
				
				<category>Server Configuration</category>
				
				<pubDate>Mon, 28 Jan 2008 06:13:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2008/1/28/Diagnosing-Server-Issues</guid>
				
				
			</item>
			
			<item>
				<title>Flash Security with Off-Root CrossDomain.xml files</title>
				<link>http://www.nodans.com/index.cfm/2008/1/4/Flash-Security-with-OffRoot-CrossDomainxml-files</link>
				<description>
				
				&lt;p&gt;
&lt;a href=&quot;http://brucephillips.name/blog/&quot; target=&quot;_new&quot;&gt;Bruce Phillips&lt;/a&gt; (You should check out &lt;a href=&quot;http://www.brucephillips.name/blog/index.cfm/FX&quot; target=&quot;_new&quot;&gt;his interesting Flex posts&lt;/a&gt;) let me know that my Surfing Stats data didn&apos;t load when the swf was located off my http://www.nodans.com domain. I want others to take the code and do with it as they please so I need to make the data available across domains. This is done through the use of a crossdomain.xml file. The file I used looks like this:

&lt;code&gt;
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;cross-domain-policy&gt;
  &lt;allow-access-from domain=&quot;*&quot; /&gt;
&lt;/cross-domain-policy&gt;
&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;This is a very promiscuous file. It allows anyone anywhere to load any data in the containing directory and all subdirectories. Such a promiscuous file also opens up security vectors. In the words of &lt;a href=&quot;http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&quot;  target=&quot;_new&quot;&gt;Lucas Adamski on DevNet:&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;

&lt;em&gt;
As an example, a user is logged in to an e-commerce site that uses cookies for authentication. On the site is a user account settings page where you can see information such as your mailing address and other personally identifiable information. If this site has an overly permissive cross-domain policy file like *, a SWF file that is hosted on another domain could silently load the account settings data and send it elsewhere. This is because the browser appends the cookies for the e-commerce site to the request from Flash Player.
&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;By default, the SWF looks for the crossdomain.xml file in the root of the website but with a little code, you can put it anywhere you please. I used this command to tell the SWF where to find the crossdomain.xml file:

&lt;code&gt;
Security.loadPolicyFile(&quot;http://www.nodans.com/custom/surfingstats/crossdomain.xml&quot;);
&lt;/code&gt;

&lt;/p&gt;

&lt;p&gt;Now, only the directory containing SurfingStats is enabled, reducing the surface area of attack. If you want to read more on the security issues with crossdomain.xml files, check out these links:

&lt;br /&gt;&lt;a href=&quot;http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&quot; target=&quot;_new&quot;&gt;Poking new holes with Flash Crossdomain Policy Files&lt;/a&gt;
&lt;br /&gt;&lt;a href=&quot;http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&quot; target=&quot;_new&quot;&gt;Cross-domain policy file usage recommendations for Flash Player&lt;/a&gt;
&lt;br /&gt;&lt;a href=&quot;http://shiflett.org/blog/2006/sep/the-dangers-of-cross-domain-ajax-with-flash&quot; target=&quot;_new&quot;&gt;The Dangers of Cross-Domain Ajax with Flash&lt;/a&gt;

&lt;/p&gt; 
				</description>
				
				<category>Server Configuration</category>
				
				<category>Flex</category>
				
				<category>AIR</category>
				
				<pubDate>Fri, 04 Jan 2008 08:13:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2008/1/4/Flash-Security-with-OffRoot-CrossDomainxml-files</guid>
				
				
			</item>
			
			<item>
				<title>XP Drivers for Toshiba A215 - S7428</title>
				<link>http://www.nodans.com/index.cfm/2007/11/9/XP-Drivers-for-Toshiba-A215--S7428</link>
				<description>
				
				&lt;p&gt;Recently I removed Windows Vista and installed Windows XP on the Toshiba A215-S7428. The Windows XP installation is complete and functioning properly. Due to the driver incompatibilities, this process was much more annoying than I thought it ever could be.&lt;/p&gt;

&lt;p&gt;To get this to work, you have to pretty much forget the Toshiba site. It is mostly unhelpful and will send you over the edge. Instead, one must dig down deep into the operating system. One must manually edit driver inf files. One must deal with trying to find a driver for &quot;Unknown System Device&quot;. &lt;/p&gt;

&lt;p&gt;Fortunately, some unnamed kind soul has done all the hard work for you. I have been asked by unnamed kind soul to say the following:  [More]
				</description>
				
				<category>Server Configuration</category>
				
				<pubDate>Fri, 09 Nov 2007 13:44:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2007/11/9/XP-Drivers-for-Toshiba-A215--S7428</guid>
				
				
			</item>
			
			<item>
				<title>Toshiba Satellite A215-S7428 on Windows XP</title>
				<link>http://www.nodans.com/index.cfm/2007/10/29/Toshiba-Satellite-A215S7428-on-Windows-XP</link>
				<description>
				
				&lt;p&gt;I recently purchased a Toshiba Satellite A215-S7428. This well-equipped notebook computer comes with Windows Vista Home Premium. I planned to remove Vista Home Premium and replace it with the venerable and less annoying Windows XP. Let this post serve as a warning to others with similar ideas.&lt;/p&gt;

&lt;p&gt;Removing Vista was easy enough. Installing Windows XP was easy enough. Finding and installing drivers has been the bane of my existence.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update: This has been solved. See: &lt;a href=&quot;http://www.nodans.com/index.cfm/2007/11/9/XP-Drivers-for-Toshiba-A215--S7428&quot; target=&quot;_new&quot;&gt;XP Drivers for Toshiba A215 - S7428&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Predictably, the Toshiba site was no help. I understand they shipped the computer with Vista Home Premium, and likely feel their support obligations only extend to OEM configurations. However, I lost confidence in Toshiba when I read the following on their &lt;a href=&quot;http://www.csd.toshiba.com/cgi-bin/tais/su/su_sc_outFrm.jsp?moid=1852726&amp;rpn=PSAFGU&amp;ct=DS&amp;soid=1858544&amp;BV_SessionID=@@@@0395073782.1193675166@@@@&amp;BV_EngineID=cccdaddmghjgjdicgfkceghdgngdgnj.0&quot; target=&quot;_new&quot;&gt;Detailed Specs for the Toshiba Satellite A215-S7428&lt;/a&gt;: &quot;This product specification is variable and subject to change prior to product launch.&quot;&lt;/p&gt;

&lt;p&gt;If anyone sees Toshiba, please remind them the product Toshiba Satellite A215-S7428 has launched.&lt;/p&gt;
&lt;h3&gt;A few of the problems I am currently working through:&lt;/h3&gt;
&lt;p&gt;Realtek allegedly provided the WLAN component. The driver listed at &lt;a href=&quot;http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&amp;PNid=1&amp;PFid=1&amp;Level=6&amp;Conn=5&amp;DownTypeID=3&amp;GetDown=false&amp;Downloads=true#RTL8187B&quot; target=&quot;_new&quot;&gt;The Realtek WLAN RTL8187B Support Section&lt;/a&gt; is not recognized by Windows XP as a valid driver. RTL8187B is listed by the Windows XP device Manager.&lt;/p&gt;

&lt;p&gt;The Display Driver listed by the &lt;a href=&quot;http://www.csd.toshiba.com/cgi-bin/tais/su/su_sc_outFrm.jsp?moid=1852726&amp;rpn=PSAFGU&amp;ct=DS&amp;soid=1858544&amp;BV_SessionID=@@@@0395073782.1193675166@@@@&amp;BV_EngineID=cccdaddmghjgjdicgfkceghdgngdgnj.0&quot; target=&quot;_new&quot;&gt;Detailed Specs for the Toshiba Satellite A215-S7428&lt;/a&gt; is ATI Radeon X1200M. This is not even an option at the &lt;a href=&quot;
http://ati.amd.com/support/driver.html&quot; target=&quot;_new&quot;&gt;ATI driver download site&lt;/a&gt;. I tried the Radeon X1200 driver (in the Windows XP &gt; Professional/Home &gt; Integrated/Motherboard &gt; Radeon X1200 but the install aborted when it found no compatible hardware. I guess the &apos;M&apos; in ATI Radeon X1200M makes a HUGE difference.&lt;/p&gt;

&lt;p&gt;As a consolation prize, there is no driver listed for the ATI Radeon X1200M in the Windows Vista section either.&lt;/p&gt;

&lt;p&gt;Network and Display adapters are KEY. I haven&apos;t even tried to figure out what Base System Device is, or PCI Device....&lt;/p&gt;

&lt;img src=&quot;http://www.nodans.com/images/extras/DeviceManager.gif&quot; /&gt;

&lt;h3&gt;Final Thoughts&lt;/h3&gt;
&lt;p&gt;I&apos;ve swapped OS versions in the past and do not recall these types of issues. If I am overlooking something, please point it out to me. Meanwhile, I issue a word of caution for those who plan to purchase the Toshiba Satellite A215-S7428.&lt;/p&gt;

&lt;p&gt;While this notebook comes well equipped on the hardware side, it is severely lacking for those who wish to swap Operating Systems. Think twice if you choose to go this route. There are plenty of computers that will still ship with Windows XP. Choose one of those.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update: In case you missed the inline announcement, this has been solved. See: &lt;a href=&quot;http://www.nodans.com/index.cfm/2007/11/9/XP-Drivers-for-Toshiba-A215--S7428&quot; target=&quot;_new&quot;&gt;XP Drivers for Toshiba A215 - S7428&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;iframe src=&quot;http://rcm.amazon.com/e/cm?t=httpwwwnodans-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=B000VVHUJ2&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr&quot; style=&quot;width:120px;height:240px;&quot; scrolling=&quot;no&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt; 
				</description>
				
				<category>Server Configuration</category>
				
				<pubDate>Mon, 29 Oct 2007 12:07:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2007/10/29/Toshiba-Satellite-A215S7428-on-Windows-XP</guid>
				
				
			</item>
			
			<item>
				<title>Anatomy of an SQL Injection Attack</title>
				<link>http://www.nodans.com/index.cfm/2007/6/5/Anatomy-of-an-SQL-Injection-Attack</link>
				<description>
				
				&lt;p&gt;Security is everyone&apos;s problem. It is important to be aware of issues that can foster security violations in software. Buffer Overflows, a common software security hole, arise from the length of input not being checked. When the input is larger than the memory allocated, the input data can spill over into unintended memory addresses. By appending a command with the correct offset, it is quite possible to push the command into memory space with high level privileges and execute. &lt;/p&gt;

&lt;p&gt;In a buffer overflow attack, often the application accepting the input is running under reduced privileges. Because the input overflows the given memory address, it matters not that the input originated from a low privilege application, but rather the actual memory address where the command is stored and executed.&lt;/p&gt;

&lt;p&gt;SQL injection is another type of attack and shares a common root with Buffer Overflow attacks. When input is not properly evaluated and filtered, bad things can happen. In an SQL injection attack, the attacker appends SQL statements  to input. Here is a simple query: &lt;/p&gt;

&lt;code&gt;
SELECT userID, username, password
FROM Users
WHERE UserID = 1
&lt;/code&gt;

&lt;p&gt;Here is an example of appending a command to an SQL statement.&lt;/p&gt;
&lt;code&gt;
SELECT userID, username, password
FROM Users
WHERE UserID = 1; DROP Users;
&lt;/code&gt;
&lt;p&gt;In the last example, an SQL command to drop the users table was added. Imagine for a moment the URL to access a user profile.
&lt;strong&gt;http://someserver/index.cfm?userID=1&lt;/strong&gt;
The userID is appended to the URL and is undoubtedly passed to a query in the application that returns the profile associated with UserID 1.
&lt;/p&gt;
&lt;p&gt;To create an SQL Injection attack with the URL above, we could simply try the following URL: &lt;strong&gt;http://someserver/index.cfm?userID=1;drop users&lt;/strong&gt;
When the application substitutes the userID value of &lt;strong&gt;1;drop users&lt;/strong&gt; in the query, there are actually two statements to be executed. Firstly, the command to return the data from the users table associated with userID 1. Secondly, the command to drop the whole users table.
&lt;/p&gt;

&lt;p&gt;Pragmatically speaking, there would be little to gain by dropping the users table apart from vandalism. That being said, there are thousands of 5kr1pt k1dd135 whom would be delighted in dropping your users table for you and then bragging to their little wanker friends about how they trashed your server. Still, not much of a security risk? Let us try another angle.&lt;/p&gt;

&lt;p&gt;Suppose for a moment a site that charged a lot of money for access to data. Users periodically purchased subscriptions and your organization was making millions. Inside the database was a users table with the field of &apos;ExpirationDate&apos; representing the date the subscription would need renewal. Shall we form an attack to give us a 20 year subscription?&lt;/p&gt;

&lt;p&gt;This is the SQL we wish to execute&lt;/p&gt;
&lt;code&gt;
SELECT userID, username, password
FROM Users
WHERE UserID = 1; update Users set ExpirationDate = &apos;5/5/2027&apos;;
&lt;/code&gt;
&lt;p&gt;Can you guess what the URL string would look like?&lt;br /&gt; &lt;br/&gt;If you guessed: &lt;strong&gt;http://someserver/index.cfm?userID=1;update users set expirationdate = &apos;5/5/2027&apos;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Then you are close. We may need to massage the url a little, or find a text input to put our command if the spaces and quotes are not respected.&lt;/p&gt;

&lt;p&gt;So we can bump our subscription up 20 years or so. What else can we do? Let us try to add a user. &lt;/p&gt;
&lt;p&gt;This is the SQL we wish to execute&lt;/p&gt;
&lt;code&gt;
SELECT userID, username, password
FROM Users
WHERE UserID = 1; insert into Users (username, password, expirationdate) values (&apos;imahaxor&apos;,&apos;inyourbox&apos;,&apos;5/5/2027&apos;);&lt;/code&gt;
&lt;p&gt;&lt;strong&gt;http://someserver/index.cfm?userID=1;insert into Users (username, password,expirationdate) values (&apos;imahaxor&apos;,&apos;inyourbox&apos;,&apos;5/5/2027&apos;);&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Now in place of just extending a subscription, the attacker has a new account that won&apos;t expire for a while yet. Not a pretty picture is it?&lt;/p&gt;

&lt;p&gt;How can you defend against SQL injection attacks, you ask? There are some best practices you may follow to reduce your attack surface. Let us look at a few:&lt;/p&gt;
&lt;p&gt;
&lt;ol&gt;
&lt;li&gt;Reduce the privileges given to the SQL user of your application. If the application never needs to insert into a particular table, then remove that privilege.&lt;/li&gt;
&lt;li&gt;Check your input values. If you are expecting a number, add val() around the value. In the case above, a simple val() statement turns a malicious statement into a simple 0. We all like 0, right?&lt;/li&gt;
&lt;li&gt;Use prepared statements. Adding cfqueryparam values to your dynamic query values adds great protection. Apart from escaping malicious characters, the prepared statement treats the value as a value, not a string of text to be executed by the SQL engine.&lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;
&lt;p&gt;While software is extremely difficult to secure completely you can remove a giant risk by gaining understanding of SQL Injection Attacks and using the techniques above.&lt;/p&gt;


&lt;p&gt;Below are some examples of a recent attempt to use SQL Injection on my blog. This attack was not very sophisticated, but could have disrupted the services of this blog.&lt;/p&gt;



&lt;p&gt;
&lt;code&gt;
Invalid data FDEB2819-9F27-DDC8-3C7C7A4B29BC8149 and 1=2 value exceeds MAXLENGTH setting 35..
&lt;/code&gt;
&lt;em&gt;This was a fingerprinting attack. If the attacker retrieved a page, then the input mechanism would allow sanitized input. If the attacker received an error message, then perhaps important information about the server configuration would be revealed.&lt;/em&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;code&gt;
Invalid data FDEB2819-9F27-DDC8-3C7C7A4B29BC8149 and char(124)+user+char(124)=0 value exceeds MAXLENGTH setting 35..
&lt;/code&gt;
&lt;em&gt;This string evaluates to FDEB2819-9F27-DDC8-3C7C7A4B29BC8149 and |user|=0.&lt;/em&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;code&gt;
Invalid data FDEB2819-9F27-DDC8-3C7C7A4B29BC8149&apos; and char(124)+user+char(124)=0 and &apos;%&apos;=&apos; value exceeds MAXLENGTH setting 35..
&lt;/code&gt;
&lt;em&gt;This string evaluates to FDEB2819-9F27-DDC8-3C7C7A4B29BC8149 and |user|=0 and &apos;%&apos;=&apos;&lt;/em&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;/p&gt; 
				</description>
				
				<category>ColdFusion</category>
				
				<category>Server Configuration</category>
				
				<pubDate>Tue, 05 Jun 2007 08:22:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2007/6/5/Anatomy-of-an-SQL-Injection-Attack</guid>
				
				
			</item>
			
			<item>
				<title>Google for Domains and MX Records of Death</title>
				<link>http://www.nodans.com/index.cfm/2007/4/11/Google-for-Domains-and-MX-Records-of-Death</link>
				<description>
				
				&lt;p&gt;I set up Gmail for domains the other day. Part of the configuration involves &apos;Claiming&apos; your domain. This is a simple process. All you have to do is copy a string, save it to a specially named file and add it to the webroot for the domain.&lt;/p&gt;

&lt;p&gt;The next part involves setting your MX Records. This means changing the current DNS MX records and adding in the ones provided by Google. Below is the configuration:&lt;/p&gt;  [More]
				</description>
				
				<category>Server Configuration</category>
				
				<pubDate>Wed, 11 Apr 2007 07:43:00 -0700</pubDate>
				<guid>http://www.nodans.com/index.cfm/2007/4/11/Google-for-Domains-and-MX-Records-of-Death</guid>
				
				
			</item>
			</channel></rss>