五千年(敝帚自珍)

主题:【请教】请教各位一个SQL Server的安全问题 -- 懒厨

共:💬13 🌺1
全看树展主题 · 分页首页 上页
/ 1
下页 末页
家园 【请教】请教各位一个SQL Server的安全问题

前两年帮一个朋友业余做了套软件,经过两年来的慢慢完善,朋友很喜欢,想跟我合伙去卖。问题是两年前做的时候没想过要卖,贪方便,数据库就选了MSDE (SQL Server 2000的免费版)

现在想卖,不得不考虑一下安全问题了,主要是想防盗版。因为无法控制用户的服务器,用户随便装一个Enterprise Manager,整个Schema(数据结构?)就让人看得清清楚楚了。

退而求其次,既然Schema没法防,就把Views & Stored Procs加密,聊胜于无吧。结果放狗一查,一大堆源码帮你解密。

请问各位有何高招呢?

家园 可以这么看,

你对这个产品的预期是多少(这个产品的生命周期里能为你挣多少钱),然后再算算你可以为了防盗版投入多少。最后再考虑主要的销售市场实际情况,来决定需要什么样的技术和法律手段。

家园 那就混淆一下

表名从t1到tn

字段从f1到fn

见过有这么做的。就是开发维护的时候要看数据字典手册,另外把数据存取层与商业逻辑实体层分开能减少依赖。

家园 呵呵,期望不高

每年能卖十个八个用户,就很高兴了,纯粹是副业,挣点零用钱罢了,所以一定是低成本的方案。

最近大概能卖出第一套吧,还在做测试,想到这个问题,这才有此一问。

不过,如果卖得好,我倒是舍得花点钱把数据库搞得尽可能安全的。

家园 谢谢,不过这个有点晚了

全部改过来,太辛苦了。

另外,以后做维护,难度也高了点。

家园 准备做下一版本么?如果有计划,不妨把这一版本直接放出去

占领市场,然后在下一版本里仔细考虑防盗版。

家园 确实如此

现在的打算就是分两步走。

第一步是做一个简单的MAC Address加密,只能在固定的服务器上运行,防止拷贝,这一步已经搞定了。

第二步打算把数据库加密,如果能卖多几个客户,有点本钱的话,看看能不能找个什么加密软件至少锁住Views & Stored Procs。

家园 全文查找替换一下就可以啊

我也觉得那是在版权以外的一个比较可行的办法了。表名、字段名在交出去的时候,全改成没意义的随机字符串。程序里面也做那样的改动,包括函数名,变量名等等。

比如 var_thisvar 变成 md5("var_thisvar")这样。估计即使有人拿到你的源代码,也不会有人愿意看。

家园 这个还是太复杂

主要是维护起来太复杂,全文替换难度比较大的,都在数据库里面,而且全文替换之后还得全部重新测试,我可是光杆司令啊。

家园 那就用别人不用的数据库,或者单文件的数据库

比如interbase,单文件数据库,但是它的性能很好,不输给SQL Server,而且因为是单文件数据库可以更改附加名。你把文件名改成DLL混在其它DLL一起看他能认出来就怪了,更不用说破解数据库的密码。不过问题是,听说interbase容易在意外断电情况下丢失数据并且不容易恢复。

看你程序写的怎么样了,如果都是通用SQL那么在数据库连接的地方改一个连接指向Interbase就行了。但是如果用了SELECT TOP(10) FROM 。。。。呵呵,那您自个看着办吧。

家园 谢谢,InterBase是好

查了一下,每加一个用户要两百多块钱,但是我的客户通常有5-10个用户,这么一算,成本就上去了,也不知用户肯不肯。。。

家园 FireBird

家园 又查了一下

好像不支持数据库的加密吧,象InterBase那种,或者至少是把Views & Store Procs加密。

可惜了,FireBird真是好东西,不象MSDE那样,只支持2G的数据库。

全看树展主题 · 分页首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河