midas安全性(急)(100分)

  • 主题发起人 主题发起人 jun_happy
  • 开始时间 开始时间
J

jun_happy

Unregistered / Unconfirmed
GUEST, unregistred user!
只要知道应用程序的服务器地址,在客户端使用clientdataset就可以连接到应用服务器的
rdm,用什么方法能解决啊?
 
在數据庫端解決這個問題吧~~~~~~
 
这个好办,一开始先设置所有的TDataSetProvider的Exported为假,在中间层做一个远程过程,这个远程过程的任务就是设置TDataSetProvider的Exported为真,并且连接数据库,如果没有执行这个远程过程的话RDM肯定是打不开的!
 
这样设置太麻烦了些,有没有简单一些的啊
 
你不用任何连接组件?
 
rdm上需要:
TDataSetProvider
TQuery
TDatabase
TSession
配合
 
联上去完全可以理解,你想世界上有这么多的服务器,你都可以联上去呀,但你为什么联上了又进不了呢,是那些服务器有认证,你没有授权就无法进去。你也可以在MIDAS服务器上做认证嘛。^-^
 
这个好办,一开始先设置所有的TDataSetProvider的Exported为假,在中间层做一个远程过程,这个远程过程的任务就是设置TDataSetProvider的Exported为真,并且连接数据库,如果没有执行这个远程过程的话RDM肯定是打不开的!
这个方法有问题啊,如果一个合法用户先登录了,于是exported为true,然后非法用户只要在这个时候连上去就行了
 
谁说不行,在RemoteDataModuleCreate时:
for i := ComponentCount - 1do
wnto 0do
if Components is TDataSetProvider then
(Components as TDataSetProvider).Exported := False;
在远程过程内
for i := ComponentCount - 1do
wnto 0do
if Components is TDataSetProvider then
(Components as TDataSetProvider).Exported := True;
 
数据的存取都用远程函数,这样即使非法用户连接上了服务器端程序,也无法存取数据!
 
初始状况下Tdataset和TDataSetprovider不联系起来
在服务器中定义一个Login 过程
Client通过 AppServer.Login 实现登录验证过程,在此过程中,确认了合法用户后,再
把 TDataSet 和 TProvider 连接起来
 
后退
顶部