delphi三层中如何解决不明客户端对应用服务器的非授权访问
也就是别人知道了我的服务器的ip和端口号
就可以使用应用服务器了
一方面加重负担
另一方有安全隐患比方说数据库是mysql 
应用服务器用的是adoconnection+adotable+datasetprovider 
客户端socketconnection+clientdataset+datasource+dbgird显示内容 delphi自带的demo哪个没看太懂
希望各位高手给予指教谢谢

解决方案 »

  1.   

    delphi自带的demo 直接用就可以
    通过GUID 可以防止别人知道服务器的ip和端口号后 使用应用服务器了 
      

  2.   

    kugoo_2006你好
     没看明白你的意思
    希望能再解释一下
    谢谢了
      

  3.   

    关键是有好多客户端的
    怎么只是不连接这个验证不通过的呢
    zhuchengchuan 请问具体怎么写,加到那儿控制啊?
    谢谢
      

  4.   

    1.在中间服务器端写个接口吧,上来验证一下,写到_TLB.PAS里面
    2.防火墙过滤掉非法的ip和MAC地址也行。
      

  5.   

    我目前是这样做的:
      不使用dcom方式
      自己开发基于iocp的tcp控件
      将delphi的scktsrvr.exe(有源码)融合进自己的exe中,这样,放一个sockconnect控件,在uses SConnect, yourConnect,这样就搞定了  由于tcp我有自己的封包和断线超时逻辑,于是很多功能与SConnect中的delphi socket代码不太一样了,这样的好处就是很多底层的加密、验证都经过我自己的封包,哈哈,我只用了3天就搞定了,这个方法,不需要重编控件,但要重写TSocketConnect, 有难度,好处就是调试时,还是可以用delphi的TDcomConnect, 很方便呀其实,要求时间快,可以这样:
      加个login的dcom接口,再在as_getrecord、as_execute之类的所有 com接口中,验证是否登陆,自己写的其它dcom接口都要验证一下还有种方法就是:
      加个中间层,拦截tcp流,再在流的头上添加一条登陆验证数据,这样不需要有较大改动,但需要你对tcp通讯有了解最后一种方法:
      换三层为ASTA或remObj, midas只是技术过渡产品,但开发比较之非常方便得手,换的时间可能会很长,新技术要求更高我选择第一种的目的是,因为我自己开发了一套成熟稳定的iocp控件,而且我习惯midas了,开发方便,
    另外,delphi自己的midas断线重连做得不好,还会报错,我也解决了,需要在connect断线后,手动去关一下connect := false,这样clientdataset再操作时,会自动再连
      
      

  6.   

    非常感谢各位
    但是由于我水平低,所说的方法
    还是不知道具体怎么写
    希望有源代码的例子如果哪位有方便的例子的话
    请发到
    [email protected]再次表示谢谢