五千年(敝帚自珍)

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

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

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

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

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

    请问各位有何高招呢?

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

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

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

    • 家园 那就混淆一下

      表名从t1到tn

      字段从f1到fn

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

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

        全部改过来,太辛苦了。

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

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

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

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

          • 家园 这个还是太复杂

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

    • 家园 可以这么看,

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

      • 家园 呵呵,期望不高

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

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

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

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

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

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


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

Copyright © cchere 西西河