一般的数据库应用程序,需要把数据库的帐号密码写在程序(exe)里,以便访问数据库。
但是,数据库的帐号密码即使是加密保存在程序(exe)里,别人也能在运行时跟踪exe而得到数据库的帐号密码的明文!
或者,直接以数据库的帐号密码作为应用的帐号密码,这样,是用户运行时输入的,程序(exe)里无须保存。但是这样又使得应用的帐号受数据库帐号的限制了。而且可能不现实:如果是几千用户的系统,不可能在数据库里建几千个帐号。
要彻底安全,只有采用严格的多层机制:
多层的机制,多了一个应用服务器,客户端不用直接访问数据库,需要访问的只是应用服务器;
应用服务器才需要直接访问数据库;
客户端只需要向应用服务器请求:身份核对、读记录、写记录;
身份核对需要的帐号、密码,是用户运行时输入的,程序(exe)里并不会保存;
后续的读记录、写记录 能否进行,取决于身份核对是否通过,通过才会得到一个应用服务器发出的随机id;
只有凭带有效随机id(会过期失效)的读记录、写记录请求,才会被应用服务器接受并执行。
数据库的帐号密码只有后台的应用服务器才知道,程序(exe)是无须保存了!