也就是说这种c/S结构的程序,我安装后就可以通过内存查看器得到数据库的用户名及密码,问大家怎样解决!
详细的查看方法为以下方式:
1、下载软件WinHex,并安装
http://count.crsky.com/view_down.asp?down_url=http://5.jsdx1.crsky.com/200901/WinHex-v15.1sr-8H.rar&downd_id=26&ID=1683&SOFTID=1151&down=yes
2、运行pb开的C/S结构程序
3、打开软件在工具菜单中选择打开ram内存
4、选择运行的pb开发的程序,并打开primary memory
5、选择搜索-查找文件,并输入数据的用户名或者密码,按ok就可以检索到。
当然这个方法,在不知道数据用户及密码的状态下很难找到正确的,但有人做到了,所以我也很无奈,求各位高人指点一二。
我的邮箱为lihhsd@126.com, QQ911404
26 个解决方案
#1
只要是想看,怎么也能看到!
这东西没有什么意义!
用户及密码不给用户你还让不让他们维护了!
你就能保证程序很完美吗?
大公司有的表结构甚至源程序都会给用户的!
这东西没有什么意义!
用户及密码不给用户你还让不让他们维护了!
你就能保证程序很完美吗?
大公司有的表结构甚至源程序都会给用户的!
#2
购买Sybase 的EAServer吧!
#3
不是管理员看到了,是普通用户也给查出来了
#4
可现在已经使用了sybase 12.5了
#5
很强哈
#6
看了很多PB做的 C/S 程序的应用系统,他们的C端都是直接连接DB的.
也就是要求 S 端的DB必须将相应的的端口暴露在网上如 SQL Server 的1433,这种结构本身存在很大的风险性.
不要说是在打开了C 端的电脑上用密码查看器查密码,就是在没有安装C端的电脑上也有人能强行的登录的SQL Server.
不知道哪位高手有没有办法改1433 为其它的端口号,并且C端怎么整也可以正常连接的.
#7
上次还回复了你一下,用汉字或其它全角字符做密码吧.
我刚才试了一下,用汉字是这个效果:
估计要算出它是哪几个汉字,也多少有点难度!
我刚才试了一下,用汉字是这个效果:
估计要算出它是哪几个汉字,也多少有点难度!
#8
我测试了一下,sybase不支持汉字啊。
#9
您这不掩耳盗铃吗?
告诉你的编辑器,是UNICODE编码的就可以了.
#10
先在其它地方输入汉字,复制粘贴到密码处试试.
#11
XXX
#12
没搞清楚这个问题的讨论意义何在。
登陆的时候ID和pass有了,登陆成功后,清空ID和pass内容,一个二进制的工具怎么能够看到那些信息呢。
也测试了一下,找不到。
登陆的时候ID和pass有了,登陆成功后,清空ID和pass内容,一个二进制的工具怎么能够看到那些信息呢。
也测试了一下,找不到。
#13
讨论的原因在于普通用户可以看到数据库的用户名及密码。
我不清楚怎样清空ID和pass内容,请指教
我不清楚怎样清空ID和pass内容,请指教
#14
我试了一下,连接后,清空了一样的可以搜索密码数据.
#15
不论你怎么清,人家在你CONNECT前下断(你CONNECT的时候总要给个真的密码吧),你总是很难逃过去.
这个问题,我小时候还在河边玩沙的时候就开始想,想到现在头发都掉光了.还是想不出一个非常非常完善的办法.
这个问题,我小时候还在河边玩沙的时候就开始想,想到现在头发都掉光了.还是想不出一个非常非常完善的办法.
#16
很多年以前,我见过人家有办法写的,那时候看不出来他是怎么做的.
不过我估计知道的人不会告诉你
因为加密,不外乎,算法+密钥,公开或通用的算法,依赖密钥的保密性.如果你不能完全保证密钥的安全,就只能在算法上做障眼法.这种自己设计的算法,强度非常非常弱,所以它不能公开,才有机会出其不意.
不过我估计知道的人不会告诉你
因为加密,不外乎,算法+密钥,公开或通用的算法,依赖密钥的保密性.如果你不能完全保证密钥的安全,就只能在算法上做障眼法.这种自己设计的算法,强度非常非常弱,所以它不能公开,才有机会出其不意.
#17
jdsnhan的方法可行,99年我写过的类库中就有这个功能...
14楼说的原因在于程序问题.同时你做测试也太潦草了些....
15楼说的下断的方式原因也在于程序-某些特定类型的程序可以下断点,如果在程序中有专门应对处理,下断根本无从做起......
14楼说的原因在于程序问题.同时你做测试也太潦草了些....
15楼说的下断的方式原因也在于程序-某些特定类型的程序可以下断点,如果在程序中有专门应对处理,下断根本无从做起......
#18
我是15楼,所以我说,"想不出一个 非常非常完善的办法"
我想得出的来的办法是依靠算法来做障眼的(道理上,依靠保密算法来保证安全的,基本就不是好算法),所以没办法公布它.
#19
这个好办,你可以这样处理
sqlca.logid = 'user'
sqlca.logpass = 'china_aaa'
connect;
if sqlca.sqlcode = 0 then
sqlca.logid = '******'
sqlca.logpass = '******'
else
halt
endif
在连接成功后,把logid及logpass赋值为*即可
这样的话,在内存中看到的都是*了
sqlca.logid = 'user'
sqlca.logpass = 'china_aaa'
connect;
if sqlca.sqlcode = 0 then
sqlca.logid = '******'
sqlca.logpass = '******'
else
halt
endif
在连接成功后,把logid及logpass赋值为*即可
这样的话,在内存中看到的都是*了
#20
另外建数据库用户,不要用sa,dba之类的超级用户来连接,然后将客户端用户加密,不知道用户名,就不好搜索了吧
#21
加密,或者采用伪码
#22
我试过了,不行的,他实际上是将连接后的对像放入内存中了
#23
做3层吧。
不要让客户端直接链接数据库。
做一个中间服务端。
只有通过中间服务端链接服务器。
客户端需要什么数据就从中间服务端读取。
性能可能会受点影响。
不要让客户端直接链接数据库。
做一个中间服务端。
只有通过中间服务端链接服务器。
客户端需要什么数据就从中间服务端读取。
性能可能会受点影响。
#24
同意楼上,cs 架构安全性方面先天不足,再怎么搞也难以保证安全,尽快转向三层吧。
#25
还是做三层吧,因为数据库连接本身就是明文在传送啊。
#26
每个用户分配一个数据库的用户,根据用户输入的用户名,密码来连接数据库
说实话,就算让用户进数据库也无所谓,难道用户还能不用你的软件直接在数据库里操作
说实话,就算让用户进数据库也无所谓,难道用户还能不用你的软件直接在数据库里操作
#1
只要是想看,怎么也能看到!
这东西没有什么意义!
用户及密码不给用户你还让不让他们维护了!
你就能保证程序很完美吗?
大公司有的表结构甚至源程序都会给用户的!
这东西没有什么意义!
用户及密码不给用户你还让不让他们维护了!
你就能保证程序很完美吗?
大公司有的表结构甚至源程序都会给用户的!
#2
购买Sybase 的EAServer吧!
#3
不是管理员看到了,是普通用户也给查出来了
#4
可现在已经使用了sybase 12.5了
#5
很强哈
#6
看了很多PB做的 C/S 程序的应用系统,他们的C端都是直接连接DB的.
也就是要求 S 端的DB必须将相应的的端口暴露在网上如 SQL Server 的1433,这种结构本身存在很大的风险性.
不要说是在打开了C 端的电脑上用密码查看器查密码,就是在没有安装C端的电脑上也有人能强行的登录的SQL Server.
不知道哪位高手有没有办法改1433 为其它的端口号,并且C端怎么整也可以正常连接的.
#7
上次还回复了你一下,用汉字或其它全角字符做密码吧.
我刚才试了一下,用汉字是这个效果:
估计要算出它是哪几个汉字,也多少有点难度!
我刚才试了一下,用汉字是这个效果:
估计要算出它是哪几个汉字,也多少有点难度!
#8
我测试了一下,sybase不支持汉字啊。
#9
您这不掩耳盗铃吗?
告诉你的编辑器,是UNICODE编码的就可以了.
#10
先在其它地方输入汉字,复制粘贴到密码处试试.
#11
XXX
#12
没搞清楚这个问题的讨论意义何在。
登陆的时候ID和pass有了,登陆成功后,清空ID和pass内容,一个二进制的工具怎么能够看到那些信息呢。
也测试了一下,找不到。
登陆的时候ID和pass有了,登陆成功后,清空ID和pass内容,一个二进制的工具怎么能够看到那些信息呢。
也测试了一下,找不到。
#13
讨论的原因在于普通用户可以看到数据库的用户名及密码。
我不清楚怎样清空ID和pass内容,请指教
我不清楚怎样清空ID和pass内容,请指教
#14
我试了一下,连接后,清空了一样的可以搜索密码数据.
#15
不论你怎么清,人家在你CONNECT前下断(你CONNECT的时候总要给个真的密码吧),你总是很难逃过去.
这个问题,我小时候还在河边玩沙的时候就开始想,想到现在头发都掉光了.还是想不出一个非常非常完善的办法.
这个问题,我小时候还在河边玩沙的时候就开始想,想到现在头发都掉光了.还是想不出一个非常非常完善的办法.
#16
很多年以前,我见过人家有办法写的,那时候看不出来他是怎么做的.
不过我估计知道的人不会告诉你
因为加密,不外乎,算法+密钥,公开或通用的算法,依赖密钥的保密性.如果你不能完全保证密钥的安全,就只能在算法上做障眼法.这种自己设计的算法,强度非常非常弱,所以它不能公开,才有机会出其不意.
不过我估计知道的人不会告诉你
因为加密,不外乎,算法+密钥,公开或通用的算法,依赖密钥的保密性.如果你不能完全保证密钥的安全,就只能在算法上做障眼法.这种自己设计的算法,强度非常非常弱,所以它不能公开,才有机会出其不意.
#17
jdsnhan的方法可行,99年我写过的类库中就有这个功能...
14楼说的原因在于程序问题.同时你做测试也太潦草了些....
15楼说的下断的方式原因也在于程序-某些特定类型的程序可以下断点,如果在程序中有专门应对处理,下断根本无从做起......
14楼说的原因在于程序问题.同时你做测试也太潦草了些....
15楼说的下断的方式原因也在于程序-某些特定类型的程序可以下断点,如果在程序中有专门应对处理,下断根本无从做起......
#18
我是15楼,所以我说,"想不出一个 非常非常完善的办法"
我想得出的来的办法是依靠算法来做障眼的(道理上,依靠保密算法来保证安全的,基本就不是好算法),所以没办法公布它.
#19
这个好办,你可以这样处理
sqlca.logid = 'user'
sqlca.logpass = 'china_aaa'
connect;
if sqlca.sqlcode = 0 then
sqlca.logid = '******'
sqlca.logpass = '******'
else
halt
endif
在连接成功后,把logid及logpass赋值为*即可
这样的话,在内存中看到的都是*了
sqlca.logid = 'user'
sqlca.logpass = 'china_aaa'
connect;
if sqlca.sqlcode = 0 then
sqlca.logid = '******'
sqlca.logpass = '******'
else
halt
endif
在连接成功后,把logid及logpass赋值为*即可
这样的话,在内存中看到的都是*了
#20
另外建数据库用户,不要用sa,dba之类的超级用户来连接,然后将客户端用户加密,不知道用户名,就不好搜索了吧
#21
加密,或者采用伪码
#22
我试过了,不行的,他实际上是将连接后的对像放入内存中了
#23
做3层吧。
不要让客户端直接链接数据库。
做一个中间服务端。
只有通过中间服务端链接服务器。
客户端需要什么数据就从中间服务端读取。
性能可能会受点影响。
不要让客户端直接链接数据库。
做一个中间服务端。
只有通过中间服务端链接服务器。
客户端需要什么数据就从中间服务端读取。
性能可能会受点影响。
#24
同意楼上,cs 架构安全性方面先天不足,再怎么搞也难以保证安全,尽快转向三层吧。
#25
还是做三层吧,因为数据库连接本身就是明文在传送啊。
#26
每个用户分配一个数据库的用户,根据用户输入的用户名,密码来连接数据库
说实话,就算让用户进数据库也无所谓,难道用户还能不用你的软件直接在数据库里操作
说实话,就算让用户进数据库也无所谓,难道用户还能不用你的软件直接在数据库里操作