<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>12Robots.com - Jason Dean - Database</title>
			<link>http://www.12robots.com/index.cfm</link>
			<description>ColdFusion, Database, MVC, Frameworks, Security and whatever</description>
			<language>en-us</language>
			<pubDate>Mon, 06 Sep 2010 19:32:22 -0500</pubDate>
			<lastBuildDate>Wed, 01 Sep 2010 08:07:00 -0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>jason@12robots.com</managingEditor>
			<webMaster>jason@12robots.com</webMaster>
			
			
			
			
			
			<item>
				<title>Wha sup, yo?</title>
				<link>http://www.12robots.com/index.cfm/2010/9/1/Wha-Sup-yo</link>
				<description>
				
				Wow. Things have been busy and I have been neglecting my blog. I feel bad about that. My blog is so important to me, and things have been keeping me away. 

I am a teacher at heart. I love to teach. That is why I blog, that is why I present at conferences, and that is why I am going to grad school. So the fact that I have been unable to blog for a while upsets me greatly. But I want to tell you a little bit about why. This is not about making excuses.  This is about what is keeping me busy and what I am learning about. It will also motivate me to blog about these things, and that&apos;s the important part.
				 [More]
				</description>
						
				
				<category>Tomcat</category>				
				
				<category>General</category>				
				
				<category>Conferences</category>				
				
				<category>Security</category>				
				
				<category>ColdFusion</category>				
				
				<category>School</category>				
				
				<category>Database</category>				
				
				<pubDate>Wed, 01 Sep 2010 08:07:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2010/9/1/Wha-Sup-yo</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Insecure Direct Object Reference - Security Series #15</title>
				<link>http://www.12robots.com/index.cfm/2010/1/19/Insecure-Direct-Object-Reference--Security-Series-15</link>
				<description>
				
				The first time I looked at the &lt;a href=&quot;http://www.owasp.org/index.php/Top_10_2007&quot;&gt;OWASP Top Ten web vulnerabilities&lt;/a&gt;, they all made sense to me, save for one. That one was &lt;a href=&quot;http://www.owasp.org/index.php/Top_10_2007-A4&quot;&gt;A4 - Insecure Direct Object Reference&lt;/a&gt;. At the time I was still pretty new to object-oriented programming and so the first thing I thought was that it was referring to those kinds of objects.

But that is not what they are talking about. The are talking about any direct reference to an &quot;implementation object&quot;. Meaning objects like files, folders, database records, or other types of &quot;keys&quot;.
				 [More]
				</description>
						
				
				<category>Security</category>				
				
				<category>ColdFusion</category>				
				
				<category>Database</category>				
				
				<pubDate>Tue, 19 Jan 2010 09:07:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2010/1/19/Insecure-Direct-Object-Reference--Security-Series-15</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>ORM (Hibernate) SQL Injection - Security Series #14</title>
				<link>http://www.12robots.com/index.cfm/2009/11/19/ORM-Hibernate-Injection--Security-Series-14</link>
				<description>
				
				During &lt;a href=&quot;http://www.silverwareconsulting.com/&quot; title=&quot;Flatware&quot;&gt;Bob Silverberg&apos;s&lt;/a&gt; &lt;a href=&quot;http://experts.na3.acrobat.com/p11953199/&quot;&gt;awesome ORM presentation&lt;/a&gt; today the topic of SQL injection came up. There was a question was about whether or not the &lt;a href=&quot;https://www.hibernate.org/&quot;&gt;Hibernate ORM&lt;/a&gt; service built into &lt;a href=&quot;http://www.adobe.com/products/coldfusion/&quot;&gt;ColdFusion 9&lt;/a&gt; would prevent SQL injection.  On the surface it would seem that it does, but just like everything else, there are exceptions.
				 [More]
				</description>
						
				
				<category>Object-Oriented</category>				
				
				<category>Security</category>				
				
				<category>ColdFusion</category>				
				
				<category>Database</category>				
				
				<pubDate>Thu, 19 Nov 2009 23:18:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/11/19/ORM-Hibernate-Injection--Security-Series-14</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Using SQLite Databases with AIR - Part 8 - Encrypted SQLite Databases</title>
				<link>http://www.12robots.com/index.cfm/2009/11/2/Using-SQLite-Databases-with-AIR--Part-8--Encrypted-SQLite-Databases</link>
				<description>
				
				Getting back on track with projects I have already started, I want to finish up this series of posts of using SQLite databases with Adobe AIR. This last section will be on using Encrypted SQLite Databases.

&lt;h2&gt;Why use Encrypted Databases?&lt;/h2&gt;
There will likely come a time in your career when you need to deal with sensitive data. When dealing with AIR applications, it may come sooner than you think. With AIR applications, if you need to persist data for use offline, one of the better options to do so is inside of a SQLite database. However, if you do this without any encryption, then the file is (obviously) stored in a clear-text way, meaning that it can be read by anyone who had access to the machine, including other applications like Trojan horses or &lt;a href=&quot;http://www.12robots.com/index.cfm/2009/5/27/Think-twice-before-installing-that-AIR-application&quot;&gt;other AIR applications written by malicious users&lt;/a&gt;.
				 [More]
				</description>
						
				
				<category>AIR</category>				
				
				<category>Security</category>				
				
				<category>Database</category>				
				
				<pubDate>Mon, 02 Nov 2009 09:23:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/11/2/Using-SQLite-Databases-with-AIR--Part-8--Encrypted-SQLite-Databases</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Using SQLite Databases with AIR - Part 7 - Looping over Query results (also with jQuery)</title>
				<link>http://www.12robots.com/index.cfm/2009/8/27/Using-SQLite-Databases-with-AIR--Part-7--Looping-over-Query-results-also-with-jQuery</link>
				<description>
				
				I think that I have neglected to cover one of the most important parts of working with SQLite databases in &lt;a href=&quot;http://www.adobe.com/products/air/&quot;&gt;Adobe AIR&lt;/a&gt;, and that is how to get the results out of the query. We talked about making queries, parameterizing queries, using transactions with queries. But I don&apos;t think we have covered getting the data out of the queries.

So let&apos;s do that.
				 [More]
				</description>
						
				
				<category>JavaScript</category>				
				
				<category>AIR</category>				
				
				<category>Database</category>				
				
				<pubDate>Thu, 27 Aug 2009 08:06:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/8/27/Using-SQLite-Databases-with-AIR--Part-7--Looping-over-Query-results-also-with-jQuery</guid>
				
				<enclosure url="http://www.12robots.com/enclosures/bloggers.db" length="2048" type="application/octet-stream"/>
				
			</item>
			
		 	
			
			
			<item>
				<title>Using SQLite Databases with AIR - Part 6 - Transactions</title>
				<link>http://www.12robots.com/index.cfm/2009/8/24/Using-SQLite-Databases-with-AIR--Part-6--Transactions</link>
				<description>
				
				Transactions is SQL statements are something that I have come to love. I&apos;m sure you have too. But for those that don&apos;t know what transactional control in a database management system is, we&apos;ll start with a definition. 

Usually, when doing multiple SQL statements in a row in an application, each SQL statement is handled as a atomic unit and is committed permanently to the database before the next one is run. This can be very problematic when those queries depend on each other to work properly to maintain data integrity.
				 [More]
				</description>
						
				
				<category>JavaScript</category>				
				
				<category>AIR</category>				
				
				<category>Database</category>				
				
				<pubDate>Mon, 24 Aug 2009 07:48:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/8/24/Using-SQLite-Databases-with-AIR--Part-6--Transactions</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Hands on Adobe AIR at the next Twin Cities CFUG</title>
				<link>http://www.12robots.com/index.cfm/2009/8/20/Hands-on-Adobe-AIR-at-the-next-Twin-CIties-CFUG</link>
				<description>
				
				On Wednesday, September 2nd, I will be presenting at the &lt;a href=&quot;http://colderfusion.com/&quot;&gt;Twin Cities ColdFusion User Group&lt;/a&gt; meeting. At this meeting we are going to be trying something new (at least for me since I have been going to the CFUG). We are going to do some hands-on work with the technologies we love instead of just doing a lecture-style presentation.

The work we will be doing is with &lt;a href=&quot;http://www.adobe.com/products/air/&quot;&gt;Adobe AIR&lt;/a&gt;, JavaScript, &lt;a href=&quot;http://jquery.com/&quot;&gt;jQuery&lt;/a&gt;, and &lt;a href=&quot;http://www.sqlite.org/&quot;&gt;SQLite&lt;/a&gt;. Here is the description for the session:
				 [More]
				</description>
						
				
				<category>JavaScript</category>				
				
				<category>AIR</category>				
				
				<category>CFUG</category>				
				
				<category>Database</category>				
				
				<pubDate>Thu, 20 Aug 2009 15:33:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/8/20/Hands-on-Adobe-AIR-at-the-next-Twin-CIties-CFUG</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Using SQLite Databases with AIR - Part 5 - Parameterizing Queries</title>
				<link>http://www.12robots.com/index.cfm/2009/8/12/Using-SQLite-Databases-with-AIR--Part-5--Parameterizing-Queries</link>
				<description>
				
				In a &lt;a href=&quot;http://www.12robots.com/index.cfm/2009/8/3/Using-SQLite-Databases-with-AIR--Part-4--Simple-CRUD&quot;&gt;previous post&lt;/a&gt; we looked at doing simple CRUD with &lt;a href=&quot;http://www.adobe.com/products/air/&quot;&gt;Adobe AIR&lt;/a&gt; and &lt;a href=&quot;http://www.sqlite.org/&quot;&gt;SQLite&lt;/a&gt; and doing CREATE TABLE statements. But the examples we&apos;ve looked at are VERY simple. In fact, we have not looked at any dynamically constructed queries.

Today I want to look at properly building dynamic queries in AIR using bind parameters.
				 [More]
				</description>
						
				
				<category>JavaScript</category>				
				
				<category>AIR</category>				
				
				<category>Database</category>				
				
				<pubDate>Wed, 12 Aug 2009 13:49:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/8/12/Using-SQLite-Databases-with-AIR--Part-5--Parameterizing-Queries</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Using SQLite Databases with AIR - Part 4 - Simple CRUD</title>
				<link>http://www.12robots.com/index.cfm/2009/8/3/Using-SQLite-Databases-with-AIR--Part-4--Simple-CRUD</link>
				<description>
				
				So in case you you&apos;ve been living under a rock for the last several years, you know that CRUD stands for Create, Read, Update and Delete. Which is what we are going to look at today, doing simple SQL statements with SQLite databases in &lt;a href=&quot;http://www.adobe.com/products/air/&quot;&gt;Adobe AIR&lt;/a&gt; using JavaScript.

We saw in my last &lt;a href=&quot;http://www.12robots.com/index.cfm/2009/7/28/Using-SQLite-Databases-with-AIR--Part-3--Asynchronous-Database-Connection&quot;&gt;couple&lt;/a&gt; &lt;a href=&quot;http://www.12robots.com/index.cfm/2009/7/21/Using-SQLite-Databases-with-AIR--Part-2--Synchronous-Database-Connection&quot;&gt;posts&lt;/a&gt; how do do simple CREATE statements using both synchronous and asynchronous connections. I will paste them here again so that we have the reference all on one page.
				 [More]
				</description>
						
				
				<category>JavaScript</category>				
				
				<category>AIR</category>				
				
				<category>Database</category>				
				
				<pubDate>Mon, 03 Aug 2009 15:47:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/8/3/Using-SQLite-Databases-with-AIR--Part-4--Simple-CRUD</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Using SQLite Databases with AIR - Part 3 - Asynchronous Database Connection</title>
				<link>http://www.12robots.com/index.cfm/2009/7/28/Using-SQLite-Databases-with-AIR--Part-3--Asynchronous-Database-Connection</link>
				<description>
				
				So in &lt;a href=&quot;http://www.12robots.com/index.cfm/2009/7/21/Using-SQLite-Databases-with-AIR--Part-2--Synchronous-Database-Connection&quot;&gt;my last AIR and SQLite post&lt;/a&gt; we talked about Synchronous Database Connections in &lt;a href=&quot;http://www.adobe.com/products/air/&quot;&gt;AIR&lt;/a&gt;. 

In many cases, synchronous connections may be all you need. If your queries are fast and a slight applicaiton pause is not a concern, or if you have a need for rigid program flow control, then synchronous connections are great. But there may come a time when you do not want the program to pause during a query, or series of queries. You may want the user to be able to continue working while the queries take place in the background. This is where asynchronous queries come in.
				 [More]
				</description>
						
				
				<category>JavaScript</category>				
				
				<category>AIR</category>				
				
				<category>Database</category>				
				
				<pubDate>Tue, 28 Jul 2009 08:55:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/7/28/Using-SQLite-Databases-with-AIR--Part-3--Asynchronous-Database-Connection</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Using SQLite Databases with AIR - Part 2 - Synchronous Database Connection</title>
				<link>http://www.12robots.com/index.cfm/2009/7/21/Using-SQLite-Databases-with-AIR--Part-2--Synchronous-Database-Connection</link>
				<description>
				
				So as &lt;a href=&quot;http://www.12robots.com/index.cfm/2009/7/16/Using-SQLite-Databases-with-AIR--Part-1--Synchronous-vs-Asynchronous&quot;&gt;we discussed last time&lt;/a&gt;, there are two ways to connect to a SQLite database with Adobe AIR. Today we are going to look at how to make a synchronous connection.

Just as a reminder, when we use a synchronous connection to connect to the database, the program will not move forward in processing until it is done processing a statement. With these small statements, that really shouldn&apos;t be noticeable.
				 [More]
				</description>
						
				
				<category>AIR</category>				
				
				<category>Database</category>				
				
				<pubDate>Tue, 21 Jul 2009 03:23:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/7/21/Using-SQLite-Databases-with-AIR--Part-2--Synchronous-Database-Connection</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Using SQLite Databases with AIR - Part 1 - Synchronous vs. Asynchronous</title>
				<link>http://www.12robots.com/index.cfm/2009/7/16/Using-SQLite-Databases-with-AIR--Part-1--Synchronous-vs-Asynchronous</link>
				<description>
				
				If you are planning on building an &lt;a href=&quot;http://www.adobe.com/products/air/&quot;&gt;Adobe AIR&lt;/a&gt; application, you need to be familiar with the concepts of Synchronous and Asynchronous requests, henceforth referred to as sync and async, respectiviely.

The terms sync and async are used all over the place. There are sync and async transmissions, sync and async learning, sync and async communications, and in Ajax and AIR we have sync and async requests and connections.
				 [More]
				</description>
						
				
				<category>AIR</category>				
				
				<category>Database</category>				
				
				<pubDate>Thu, 16 Jul 2009 09:19:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/7/16/Using-SQLite-Databases-with-AIR--Part-1--Synchronous-vs-Asynchronous</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Using SQLite Databases with AIR - Series Introduction</title>
				<link>http://www.12robots.com/index.cfm/2009/7/14/Using-SQLite-Databases-with-AIR--Series-Introduction</link>
				<description>
				
				One of the best parts about working with &lt;a href=&quot;http://www.adobe.com/products/air/&quot;&gt;Adobe AIR&lt;/a&gt; applications is the ability to have applications that work both online and offline. Since Adobe AIR applications are desktop applications that can run without the browser and without the need for an HTTP server or middleware server (ColdFusion, .NET, PHP, etc), they can be used without a connection to the internet. Of course we still need to write code to handle the &quot;sometimes connected&quot; abilities of our application and sometimes we need to be able to store data that we would normally receive from the server. This data can be stored in an embedded SQLite database.
				 [More]
				</description>
						
				
				<category>AIR</category>				
				
				<category>Security</category>				
				
				<category>Database</category>				
				
				<pubDate>Tue, 14 Jul 2009 08:55:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2009/7/14/Using-SQLite-Databases-with-AIR--Series-Introduction</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Are stored Procedures any more secure than parameterized queries?</title>
				<link>http://www.12robots.com/index.cfm/2008/6/26/Are-stored-Procedures-any-more-secure-than-parameterized-queries</link>
				<description>
				
				I am not going to include this post in my security series, because I am not really sure of the answer.  This is more of a thought exercise and a request for input from the community.

So there has been a lot of discussion about best practices for application/database security. One of the &quot;Best Practices&quot; that is mention fairly often is:

Use Stored Procedures for Update/Insert queries.

My question is, is this really necessary to have a secure application.
				 [More]
				</description>
						
				
				<category>Security</category>				
				
				<category>ColdFusion</category>				
				
				<category>Database</category>				
				
				<pubDate>Thu, 26 Jun 2008 11:19:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2008/6/26/Are-stored-Procedures-any-more-secure-than-parameterized-queries</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Multiple Datasource - Security Series #1</title>
				<link>http://www.12robots.com/index.cfm/2008/5/6/Multiple-Datasource-Security-Series-1</link>
				<description>
				
				&lt;p&gt;
&lt;span style=&quot;color: red;&quot;&gt;UPDATE:  So after reading Ray&apos;s Post &lt;a href=&quot;http://www.coldfusionjedi.com/index.cfm/2008/6/26/Ask-a-Jedi-Question-on-DBAs-and-their-plans-to-ruin-our-lives&quot;&gt;here&lt;/a&gt; and after reading the comments on that post, I think I have to agree with my commenters as well as Ray&apos;s that this is not the best idea. The level of complexity that this adds does not make it worth the extra security (perceived or otherwise) that the technique may offer.&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;
	For my first security series post, I am going to keep things simple. This one is more of a tip/best practice than an article. At least, that is how
	I am planning it in my head, we&apos;ll see if that changes by the bottom of the page.
&lt;/p&gt;

&lt;p&gt;
	Today I want to discuss something that most developers and administrators will find to be very annoying.  I know I do. 
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Mach-II</category>				
				
				<category>General</category>				
				
				<category>Security</category>				
				
				<category>Database</category>				
				
				<pubDate>Tue, 06 May 2008 15:09:00 -0500</pubDate>
				<guid>http://www.12robots.com/index.cfm/2008/5/6/Multiple-Datasource-Security-Series-1</guid>
				
			</item>
			
		 	
			</channel></rss>