以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  分享:客户端直接连数据库,提高安全性的一种方法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=52112)

--  作者:fubblyc
--  发布时间:2014/6/9 14:10:00
--  分享:客户端直接连数据库,提高安全性的一种方法

AfterOpenProject写如下代码:因为之前的事件,SaveConfigValue  函授还没生成。

注意:需要自定义用户登录。如果用系统自带的,如果有用到外部数据的用户数据表,在这之前数据源还没生成。

请各位老师多指正!!

 

If Connections.Contains("user") Then
Else
    If FileSys.FileExists("d:\\locales.zip") Then      如数据库密码有更改,则发给用户ip地址配置文件更新包。
        Dim zip As New zipFile
        zip.Open("d:\\locales.zip")
        zip.ExtractAll("d:\\")
        zip.Close()
        FileSys.DeleteFile("d:\\locales.zip",2,2)  删除ip地址配置文件更新包
    End If
    Dim ipf As String = "d:\\locales\\UserCenter\\8.00.08C\\configurations\\resources\\cyril\\PhoneAssistant\\web\\th_TH\\ip.txt"   ip地址连接字符串密文
    If FileSys.FileExists(ipf) Then
        Dim Val2 As  String =  FileSys.ReadAllText(ipf)
        SaveConfigValue("ip", Val2)   保存设置信息
        FileSys.DeleteFile(ipf,2,2)   立即彻底删除
    End If
    Dim key1f As String = "d:\\locales\\UserCenter\\8.00.08C\\configurations\\resources\\cyril\\PhoneAssistant\\web\\th_TH\\key1.txt"   密匙key1
    If FileSys.FileExists(key1f) Then
        Dim Val3 As String =  FileSys.ReadAllText(key1f)
        SaveConfigValue("key1", Val3)
        FileSys.DeleteFile(key1f,2,2)
    End If
    Dim key2f As String = "d:\\locales\\UserCenter\\8.00.08C\\configurations\\resources\\cyril\\PhoneAssistant\\web\\th_TH\\key2.txt"
    If FileSys.FileExists(key2f) Then
        Dim Val4 As  String =  FileSys.ReadAllText(key2f)
        SaveConfigValue("key2", Val4)
        FileSys.DeleteFile(key2f,2,2)
    End If
    If FileSys.DirectoryExists("d:\\locales") Then
        FileSys.DeleteDirectory("d:\\locales",2,2)
    End If
    Dim ip As String =GetConfigValue("ip", "")
    Dim key1 As String =GetConfigValue("key1", "")
    Dim key2 As String =GetConfigValue("key2", "")
        try
        Dim Val5 As String = DecryptText(ip,key1,key2) \'解密
    Catch ex As Exception
        MessageBox.Show("未更新,请向公司IT管理部索取更新包","提示",MessageBoxButtons.Ok,MessageBoxIcon.Information)  密文不对,退出程序
        Syscmd.Project.Exit()
        Return
    End try
    try
        Dim Val5 As String = DecryptText(ip,key1,key2) \'解密
        Connections.Add("user",Val5)
    Catch ex As Exception
        MessageBox.Show("未更新,请向公司IT管理部索取更新包","提示",MessageBoxButtons.Ok,MessageBoxIcon.Information)  IP地址更改后没给用户更新包,退出
        Syscmd.Project.Exit()
        Return
    End try
End If
Forms("用户登录").Open()

 

 

 

 

 

[此贴子已经被作者于2014-6-9 14:45:16编辑过]

--  作者:Bin
--  发布时间:2014/6/9 14:13:00
--  
谢谢分享,不错顶一下.
--  作者:lsy
--  发布时间:2014/6/9 14:16:00
--  
值得一观啊,顶。
--  作者:jspta
--  发布时间:2014/6/9 14:43:00
--  
这个用foxtable就能进行破解了,
如果你的ZIP包是及时下载的,用文件监控下载文件夹,存在就复制。
然后。。。
说的简单点,就是让别人无法获取key。字符串尽量放在数据库中,这样会加大一点难度。

--  作者:fubblyc
--  发布时间:2014/6/9 14:49:00
--  

额,我主要是确保客户的数据库安全。不让反编译者获取到数据库地址密码。

 

jspta 你说的,没怎么听懂。。。。

 

SaveConfigValue  保存配置信息在项目里,发布之后还能被读取出来。。。?

 

如果这样,那不也白费了。。。

 


--  作者:fubblyc
--  发布时间:2014/6/9 14:50:00
--  
配置包如果有更新,就是说数据库地址密码客户那边有更改,是人工发给各用户的。
[此贴子已经被作者于2014-6-9 14:51:25编辑过]

--  作者:有点甜
--  发布时间:2014/6/9 14:53:00
--  

 呵呵,楼主,saveConfigValue的信息,也是可以通过读出来的,就是复杂一些。

 

 把信息保存在ukey上面是最安全的。


--  作者:fubblyc
--  发布时间:2014/6/9 14:54:00
--  

哦,这样啊。那就保存在ukey上吧。

 

甜老师,怎么保存ukey呢?帮助上有吗。。。


--  作者:Bin
--  发布时间:2014/6/9 14:55:00
--  
http://www.foxtable.com/help/topics/2675.htm
--  作者:fubblyc
--  发布时间:2014/6/9 14:57:00
--  

好的,看来我又要买好多加密狗了。就是怕用户的USB接口不够插。Bin老师,能用那种USB拓展器吗?就是一个线有好多个USB接口可以插的。