Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

Database Encryption -- Sql Injection

From: Dave Bergert <dbergert(at)nobel-net.com>
Date: Mon Apr 21 2003 - 21:31:48 EDT


Does any one have any comments on where best to incorporate Column level encryption in a Database field? At the Database Server level (via a User Defined Function) or at the Application Level. Which would be less impervious to SQL Injection?

I am on a MS-SQL 2000 and IIS Platform.

If I had a User Defined Function for example:  Select decrypt(AccountNumber, "key") from tblTable where User =
'someuser'

If SQL Injection occurs:
 Select decrypt(AccountNumber, "key") from tblTable where User =
'someuser' or 1=1

In this case if SQL injection occurs the encrypted field will be automatically decrypted by the UDF... Showing all accountNumbers...

If I had the Decryption handled at the Application:  Select encryptedAccountNumber from tblTable where User = 'someuser'

And had the application call:
 AccountNumber = DecryptFunction (ResultSet ("encryptedAccountNumber" ), "key")

If SQL Injection occurs, the only way data could be seen if through whatever mechanism the application displays the AccountNumber

Do you need help?X

(Are these scenarios identical ?)

I know that encryption is not a substitution for good input sanity validation.
Which method would be better to implement? Thanks for comments.

Regards,
Dave Bergert Received on Mon Apr 21 21:58:15 2003

This archive was generated by hypermail 2.1.8 : Wed Aug 23 2006 - 14:07:50 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library