最近客户在安装某款国内著名ERP管理软件时,我在现场指导过程发现了一个有意思的问题,虽然该软件是由具有数十年经验,并占有财务软件绝对市场控制权的企业开发的,但是从其安装过程看,还是有很多漏洞的。
其系统安装时需要MS SQLSERVER的SA帐号进行配置,厂商的安装人员想都没想就配置了个空SA密码,经提醒后倒是设了个密码,不过设置完后发现已经在客户端安装的软件都没法用了,又无奈改回了空SA密码...
从其安装过程看,作为C/S架构的软件,其最起码有如下问题:
1. 这种现象说明其在安装过程中没有创建数据库专用管理账户,而是使用了数据库服务器的最高管理员账户。如果数据库服务器存在多个软件系统的数据库,只要破解了连接帐号,就可以通吃了。
2. 该软件客户端的数据库连接字符串应该时记录在客户端的,早期的版本据说配置文件连加密都没做,直接将sa密码敞开口供应。此种做法一方面不安全,另一方面一旦DB管理员修改了SA密码,所有客户机都将无法连接。
其实,改变这种问题的方法很简单,开发难度也不大,只要做好两件事即可:
1. 安装过程中的数据库配置处理
服务器端安装过程中,很容易做到仅使用一次数据库服务器管理员密码,创建号数据库后,自动为数据库设置专用的操作账户,并自动生成账户密码,记录在配置文件中,这样做就可以由软件系统负责数据库连接帐号的安全管理(为了提高安全性,所创建的帐号应禁用帐号的登录功能)。
2. 客户端的数据库连接字符串获取处理
C/S模式的SQL数据库连接必须配置数据库连接字符串