应用程序保存数据库连接配置可能出现的一个安全隐患

原创 2007年09月27日 17:32:00

对于数据库应用程序,我们通常需要保存连接到数据库的服务器名称,用户名、密码等数据,而这些数据我们通常都是要进行加密处理的,因为显而易见,存储为明文将会导致密码的泄漏,影响数据的安全性!

现在问题来了,我们如何才能安全的保存 我们的用户名和密码呢?

 通常情况下,我们采用这样的办法来保存连接的信息。

 

Public Sub SaveDBToFile()Sub SaveDBToFile()
  
Dim sw As New IO.StreamWriter("db.cfg")
  sw.WriteLine(ServerName)
  sw.WriteLine(UserName)
  sw.WriteLine(Password)
  sw.Close()
End Sub
这里有一个问题,就是密码信息我们没有加密存储,这个时候用户打开这个配置文件,就会找到数据库连接的真实密码。所以我们增加了一个加密的函数,来进行加密处理。

 

 

Public Function Encrypt()Function Encrypt(ByVal Str As StringAs String
  
' 这里仅仅表示一个测试。直接返回了这个字符串。
  Str = Str
  
Return Str
End Function
然后我们需要修改保存的数据库配置方法,就是那个SaveDBToFile()过程。修改后的代码如下:

 

 

Public Sub SaveDBToFile()Sub SaveDBToFile()
  
Dim sw As New IO.StreamWriter("db.cfg")
  sw.WriteLine(ServerName)
  sw.WriteLine(UserName)
  sw.WriteLine(Encrypt(Password))  
' 对密码进行加密处理。
  sw.Close()
End Sub
很好,这里我们已经对密码进行了加密处理,密码已经被我们加密了。的确在这里也没有问题。

 

但是,如果你出现了和我以前有过的一样想法,那可能就要犯错误了。我的想法是,这样的简单加密密码还不是很安全,如果偷窥密码的人,连我的服务器名称、连接数据库的用户都不知道的话,岂不是更加安全了?好,说做就做,我们把服务器名称、连接用户名和密码统统加密,我看你还能怎么样?光知道我的用户名,密码你就猜吧!现在连我的用户名,你都不知道,我看你还猜什么!

修改后的保存数据库配置信息过程如下:

 

Public Sub SaveDBToFile()Sub SaveDBToFile()
  
Dim sw As New IO.StreamWriter("db.cfg")
  
' 服务器名称、用户名和密码全部都加密处理!
  sw.WriteLine(Encrypt(ServerName))
  sw.WriteLine(Encrypt(UserName))
  sw.WriteLine(Encrypt(Password))
  sw.Close()
End Sub
我们以为这样很安全了,而且我在一些软件里面也是这样做的,但是很有可能,用一种简单的办法就可以破解你的连接信息,因为很简单,你的这些密码配置应该是通过你的应用程序来做的,也就是说,程序应该提供一个窗口(或者别的什么控件)给用户(或者说管理员)来设置连接的用户信息。而我们在这个窗口里面通常是提供了三个TextBox控件为用户进行配置信息输入,并且通常我们都会把密码文本框设置为仅仅显示*号,而其他文本框是正常的文本显示。

 

现在对这个连接配置文件进行一下小小的改动,用记事本打开它,把这个文件的第三行和第二行内容进行对调,重新启动我们的应用程序,结果数据库连接不上了,我们需要重新设置数据库连接,打开数据库连接配置窗口,发现用户名那个文本框的内容,出现了我们以前设置的密码!!!

好了,这里我们出现了问题,那么如何解决呢?

有一种办法,就是“见好就收”,就是我们使用的第一种方法,仅仅加密密码,对于服务器名称和用户名称不加密。如果你觉得这种方法不太安全,还是要让这些偷窥者们不知道你的用户的情况下来猜测密码,那么就让你保存的文本可以表示出这一行是什么含义,也是说我们的程序读取这个文本的时候,可以知道这一行保存的是服务器名称还是用户的密码。我们尝试将保存办法修改如下:

Public Sub SaveDBToFile()Sub SaveDBToFile()
  
Dim sw As New IO.StreamWriter("db.cfg")
  
' 服务器名称、用户名和密码全部都加密处理!
 sw.WriteLine(Encrypt("S=" & ServerName))  ' S开头表示这个是服务器名称
  sw.WriteLine(Encrypt("U=" & UserName))    ' U开头表示这个是用户名
  sw.WriteLine(Encrypt("P=" & Password))    ' P 开头代码这个是密码
  sw.Close()
End Sub

我们程序在读取的时候,首先将数据行解密,然后根据解密后的字符串起始字符来判断该文本的含义。

(这个是我最近的一些小感想,希望大家可以发表自己的意见!)

版权声明:本文为博主原创文章,未经博主允许不得转载。

如何配置数据库密码加密访问数据库

一般的数据库配置文件中,连接数据库都是这样的,现在又项目需要对password 进行加密处理, 所以我们要对org.apache.commons.dbcp.BasicDataSource类进行重写,如...
  • Fishroad
  • Fishroad
  • 2015年05月26日 11:16
  • 6268

C# 对WinForm应用程序的App.config的使用及加密

原文地址:http://blog.163.com/zhou_zzq/blog/static/1019622120137621739874/ 我们在写C#应用程序时,在工程文件中放置一...
  • qq798833488
  • qq798833488
  • 2016年04月10日 21:56
  • 4369

kerberos认证协议浅析

1 引言 在希腊神话中Kerberos是守护地狱之门的一条凶猛的三头神犬,而我们在本文中所要介绍的Kerberos认证协议是由美国麻省理工学院(MIT)首先提出并实现的,是该校雅典娜计划的一部分。这...
  • lengxiao1993
  • lengxiao1993
  • 2014年03月04日 14:08
  • 1448

udp如何实现可靠性传输?

如何用udp实现可靠性传输,虽然现在有几个比较成熟的开源库,但是知其所以然还是有必要的。...
  • pangyemeng
  • pangyemeng
  • 2015年12月23日 15:05
  • 8910

字符编码带来的安全隐患——一个谷歌XSS漏洞

本文翻译自 http://shiflett.org/blog/2005/dec/googles-xss-vulnerability 多年以前谷歌曾爆出一个XSS漏洞证明了字符编码设置的重要性。 但...
  • yukon12345
  • yukon12345
  • 2011年10月18日 00:20
  • 2779

数据库的非常规式安全隐患的开发方式

1 背景    以往对于数据库的安全方面都强调基于访问控制的常规式机制,即所谓的角色控制,入侵检测等方面。由于DBMS是基于操作系统之上的系统软件,故其安全性往往与操作系统的安全性有不可分割的联系[...
  • qvfovkcf
  • qvfovkcf
  • 2014年08月19日 14:28
  • 290

避免CI成为一个安全隐患

背景最近临时交接了一个客户测试环境和产品环境的维护工作。交接的客户资产包含:代码库、生产环境主机、测试环境主机、搭建在测试环境主机上的持续集成服务器以及对应的账号密码。这个持续集成服务器采用Jenki...
  • fanwendaquan
  • fanwendaquan
  • 2017年08月01日 21:43
  • 88

我国数据安全隐患重重 数据库技术建设迫在眉睫

来源:经济参考报  作者:刘睿民      大数据是新的石油,是21世纪最珍贵的资产,它正在深刻改变各国综合国力,重塑未来国际战略格局。2013年7月,习总书记在视察中国科学院时指出:“大数据是工业社...
  • Veechange
  • Veechange
  • 2016年07月08日 14:52
  • 263

有关于WEB服务以及web应用的一些安全隐患总结资料

Abstract 有关于WEB服务以及web应用的一些安全隐患总结资料。   转自:http://blog.sina.com.cn/s/blog_6c92b3210100z4x1...
  • nchu2020
  • nchu2020
  • 2016年07月09日 08:15
  • 862

学生信息管理系统(6)——应用程序与数据库连接

上一篇文章都是巨人们对ODBC 、 OLEDB、ADO、ADODB  的认识,总感觉自己不写点东西,不总结一下知识不牢固。记得梦甜同志博客(反思——如何学习)中提到,粘在博客上的文字是你的吗? ...
  • u013036959
  • u013036959
  • 2014年06月30日 18:27
  • 1807
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:应用程序保存数据库连接配置可能出现的一个安全隐患
举报原因:
原因补充:

(最多只允许输入30个字)