基于Socket连接的MIDAS安全问题

hare007 2007-05-11 04:05:06
1、远端只要知道应用服务器的端口号即可访问到应用服务器,而一旦访问到应用服务器,TClientDataSet即可获得ProviderNames列表
2、一旦知道了ProviderNames列表,这就相当于将数据库暴露在外了。

(比较老的一个问题了,可是一直没找到比较好的解决方法)
...全文
321 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hare007 2007-05-20
  • 打赏
  • 举报
回复
1: regsrv32 \path\intercpt.dll
2: 在scktsrvr.exe中的各个端口中,那个Intercept GUID:GUID加上intercpt.dll的GUID
就是上面程序中的:
const
Class_DataCompressor: TGUID = '{B249776C-E429-11D1-AAA4-00C04FA35CFA}';

3:在你的客户端中的SocketConnection的属性中intercpt的值也是这个GUID.
这就行了
scktsrvr中的TServerSocket已经对这个压缩和解压已经封装,只需要对intercpt.dll进行
注册即可。
注意第一个步骤,在客户端中也在进行注册。
//=====================================
以上是我从网上找的,不过,好像不起作用,即使客户端不用设intercpt的值.也能读出数据。
ERR0RC0DE 2007-05-18
  • 打赏
  • 举报
回复
不然自己改scktsrvr.exe,加入IP验证。

再不然自己扩展scktsrvr.exe,都有源码。

再不然找其它中间件,或者自己写个中间件。
ERR0RC0DE 2007-05-18
  • 打赏
  • 举报
回复
可以参照:Borland\Delphi7\Demos\Midas\Intrcpt
写一个DLL,将DataIn, DataOut重写一下,加密解密。

然后在将DLL的GUID填到以下位置:
1:TSocketConnection.IntperterGUID写那个DLL的GUID
2:scktsrvr.exe: GUID
即可实现通讯的加密解密。
hyxic 2007-05-16
  • 打赏
  • 举报
回复
设置TDataSetProvider的Exported为False,在用户登陆时增加响应的验证信息,点用服务器端过程激活TDataSetProvider为True.

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧