即时结贴,高分求解:引用某个页面的时候,必须来自指定的服务器(该服务器的IP不是固定的.)前提信息:
1.公司的各个业务都放在不同的服务器上(每个业务里面都有USERS表),如有一个业务放在B服务器上.
2.各个业务的后台都有用户管理模块(管理当前业务中的用户表users),该模块放在各自服务器上.
3.现在想在单独的服务器(A)上写一个总的用户管理后台:该后台没有实质意义上的功能,在管理不同业务的时候引用各个业务的用户管理模块.
4.A服务器的IP地址不是固定的.
问题:
在总后台中调用各个业务的管理页面的时候,只要知道各个业务用户管理的URL,其不是只要知道该URL就可以访问?想加一个判断,引用各个业务的用户管理的时候进行IP地址的判断,该IP必须是A服务器.只有这样才可以访问.
比如要引用B服务器中的业务的用户管理模块的时候,必须是从A服务器上引用才可以的.其它地方不可以引用.
         本来想在A服务器上针对不同的业务的服务器建立不同的数据库访问字符串,在A服务器上建立所有业务的用户管理的总后台的,但在A服务器上无法直接访问别的服务器的数据库!!
技术负责人让我写一个WEBSERVICE来实现安全的判断问题,我没有思路.........
求助各位大虾!

解决方案 »

  1.   

    还有问题,若是判断服务器的IP,也不行吧?
    在操作总后台(程序在A服务器上)的时候,使用者的IP并不是服务器A的的IP地址呀????
      

  2.   

    这个要求,实际上就是要找一个可信任的标记,来标记行使修改权限的服务器.
    但这个标记可难找了,本来可用网卡的MAC号,但这个号也是可修改的.用IP号,它又不固定.
    但上述做法均只是在A服务器做文章,是否可在其他几个服务器上做文章呢?我觉得可以.
    比如说,你可在你想修改的各个系统里面,增加一个定置功能(或直接添加一个静态变量也可以),就是设定可对它的人员库修改的机器的IP地址,这样,就可在各个系统里面随时定可修改的机器,也不必拘泥于一定在哪台机器了.非常灵活.
    这里还有一个问题,如果此时的IP被别人用了,那么此人也可以修改了.为了防止这种问题,你可在各个系统再加设一个启用与不启用.
    如此,当你需要修改时,将某系统的人员修改启用,将它的可修改IP设置为你的机器,你就可以改了.修改完毕,将该系统修改功能关闭,此时,任何人均不能修改.
    我想,这样更有利于安全性,而且提高了灵活性.你们主管应该更欢迎这样的办法.
      

  3.   

    既然A服务器不能访问其他服务器,那就让其他服务器访问A服务器中的数据.先在A服务器中建立个用户权限表,让其他服务器连接到A服务器中的这个数据表.然后数据用户和密码后就能访问其他各自服务器.只要控制好A服务器的权限表就好了.
      

  4.   

    windows 的活动目录可以满足你的要求
      

  5.   

    看看hchxxzx(NET?摸到一点门槛)说的,
    验证的时候再加上令牌验证
      

  6.   

    谢谢恢复 hchxxzx(NET?摸到一点门槛) 你可在你想修改的各个系统里面,增加一个定置功能(或直接添加一个静态变量也可以),就是设定可对它的人员库修改的机器的IP地址,这样,就可在各个系统里面随时定可修改的机器,也不必拘泥于一定在哪台机器了.非常灵活.
    ------------------------------------------------
    还是模糊,能否解答:
    "设定可对它的人员库修改的机器的IP地址"如何设定呢?IP是动态的呀?怎样获得动态的IP?是不是每个服务器都要建立一个IP表啊??
    能详细介绍吗?不胜感激!
      

  7.   

    bingbingcha(不思不归,不孟不E,原来是头大灰狼)谢谢回复!能否再赐教,不胜感激
    既然A服务器不能访问其他服务器,那就让其他服务器访问A服务器中的数据.先在A服务器中建立个用户权限表,让其他服务器连接到A服务器中的这个数据表.然后数据用户和密码后就能访问其他各自服务器.只要控制好A服务器的权限表就好了.-----------------
    这样的思路是使其他服务器访问A服务器吧?A服务器怎么访问其他服务器上的URL呢?
    另外你登陆某一个服务器(A服务器或其它服务器中任意一个)后,通过URL调用另外一个服务器上的页面的时候,安全问题怎么办?FROM验证和SESSION严正都失效了吧,那拥护权限表其不是没有用了?只要知道URL就可以访问???
      

  8.   

    当思路实现起来有困难或者行不通的时候,就要换一个思路了.这个问题其实就是remoting的应用,为何要通过页面获取数据呢,直接通过remoting/webservice交换数据就行了,remoting/webservice一样可以登陆和保持session的.
      

  9.   

    为什么要限制仅仅只有A服务器才能够进行引用呢?假如你的服务器都是在企业Intranet内,那么所有引用都是你可以控制的,不会出现Internet上的未知引用。我想你的意思是,用户如果在A服务器登录了,那么他访问任意一台B服务器时就不需要另外登录,对吗?这是后就需要B对A的一个信任——凡是来自A的引用,只要A说用户登录了B就相信他是登录了。抑或你希望以后用户根本不能够直接访问任何B服务器,他们只能够通过A服务器来“访问”B服务器的原有Web?如果是前者,你可以考虑象.NET Passport那样做一个Single Sign On系统。如果是后者,你想简单隔离B服务器是很难的,除非你把B服务器从网络上和用户隔离,然后A服务器就像一个Proxy那样,那就能够保证用户仅从A服务器登录然后访问B服务器,否则用户总有可能伪装成A服务器的MAC和IP来访问B服务器的。
      

  10.   

    设定可对它的人员库修改的机器的IP地址"如何设定呢?IP是动态的呀?怎样获得动态的IP?是不是每个服务器都要建立一个IP表啊
    -----------
    不是这样的.
    比如你现在想在一台IP为10.143.1.1的机器上修改其他的系统,那么你先登录其他系统假设是A系统,在A系统的参数设置页面上,设置可修改的机器IP为10.143.1.1.之后,你就可以在10.143.1.1的机器上修改,此时其他任何不是这个IP的机器都不可修改
    双比如,你现在又想在另外一台IP为10.142.3.3的机器上修改,那么你可再重复上述步骤,修改你想修改的系统的设置,将可修改的机器IP设置为10.142.3.3,这样,原来那台10.143.1.1的机器就不可修改了,只能在10.142.3.3的机器上修改.
    如果不想被任何其他机器修改(关闭修改功能),则在A系统上设置将此修改功能关闭,这样,所有机器均不可修改.
      

  11.   

    cat_hsfz() ( ) 谢谢回复!
    为什么要限制仅仅只有A服务器才能够进行引用呢?
    ---------------------------
    把B项目中的用户管理(B服务器)以URL的方式添加到A项目中来,是这样的.
    所以以URL的方式访问的话就出现了如果知道URL就可访问的安全问题了,要解决安全问题的.
    在网络的任何地方登陆了A服务器中的总后台后,在后台中可以通过URL访问B服务器中的用户管理系统
    就是这目的.